前言
前些日子有人问到我溯源反制方面的问题,我就想到了MySQL任意文件读取这个洞,假设你在内网发现或扫到了一些MySQL的弱口令,你会去连吗?
原理
MySQL中 load data local infile '/etc/passwd' into table test fields terminated by '\n'; 语句可以读取客户端本地文件并插进表中,那么我们可以伪造一个恶意的服务器,向连接服务器的客户端发送读取文件的payload。这个技术并不新鲜,但是合理利用就能起到一些不错的成果。
利用
抓个包看看连MySQL时客户端和服务端通信的两个关键点:
服务端先返回了版本、salt等信息:
客户端向服务端发送账号密码信息后,服务端返回了认证成功的包:
至此,我们只需等待客户端再发一个包,我们就能发送读取文件的payload了,再看看读取文件这个包:
这里000001是指数据包的序号&#