MySQL 客户端攻击(抓包分析,附带利用工具)
lcark 漏洞分析 10991浏览 · 2019-09-30 01:14

漏洞分析


在mysql中可以通过load data local infile "/var/lib/mysql-files/test.txt" into table test命令,将本地文件上传至MySQL服务器,实际上,服务器可以直接发出请求来读取客户端文件,而不需要经过用户同意。

抓包分析

客户端发出命令请求

服务端发出读取文件请求

客户端发送文件

若是服务端直接发出读取文件请求,客户端便会直接发送本地文件。

攻击思路


客户端连接服务器
服务器发送Greeting包,要求客户端提供密码

客户端发送登陆请求

服务端直接发出ok,然后服务端直接发出读取文件请求

客户端便会直接发送本地文件。

攻击总览



注意中间的query request是每次登陆成功的版本号查询,我们并未响应

自动化工具



详见 https://github.com/lcark/MysqlClientAttack/

利用过程


运行脚本,监听本地端口

客户端连接

一有连接,即可读取到客户端文件

3 条评论
某人
表情
可输入 255
266960****@qq.co
2019-10-22 15:42 0 回复

比如服务器找不到mysql的root用户密码,可以运行这个exp提取,然后提权


chybeta
2019-10-11 01:20 0 回复

@littleheary 伪造一个假的mysql服务器。代码审计时填写的数据库配置信息,实战中的sql导入功能等等


littleheary
2019-10-08 10:29 0 回复

大佬,这个东西在实战时候怎么用的?我们又监听不到mysql数据库服务器端,监听我们本地又不会有人连接我们,难道是通过蜜罐的方式获取他人连接?可是拿到的配置文件也是我们自己的而已呀。不太明白。或者是有办法伪造一个假的mysql服务器?让别人错误的连接我们?