漏洞分析


在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
登录 后跟帖