大佬,这个东西在实战时候怎么用的?我们又监听不到mysql数据库服务器端,监听我们本地又不会有人连接我们,难道是通过蜜罐的方式获取他人连接?可是拿到的配置文件也是我们自己的而已呀。不太明白。或者是有办法伪造一个假的mysql服务器?让别人错误的连接我们?
漏洞分析
在mysql中可以通过load data local infile "/var/lib/mysql-files/test.txt" into table test
命令,将本地文件上传至MySQL服务器,实际上,服务器可以直接发出请求来读取客户端文件,而不需要经过用户同意。
抓包分析
客户端发出命令请求
服务端发出读取文件请求
客户端发送文件
若是服务端直接发出读取文件请求,客户端便会直接发送本地文件。
攻击思路
客户端连接服务器
服务器发送Greeting包,要求客户端提供密码
客户端发送登陆请求
服务端直接发出ok,然后服务端直接发出读取文件请求
客户端便会直接发送本地文件。
攻击总览
注意中间的query request是每次登陆成功的版本号查询,我们并未响应
自动化工具
详见 https://github.com/lcark/MysqlClientAttack/
利用过程
运行脚本,监听本地端口
客户端连接
一有连接,即可读取到客户端文件
点击收藏 | 4
关注 | 1
打赏