前言:今天在浏览某知论坛时,看到某大佬在渗透过程中使用伪造的MySQL服务端读取客户端文件,此大佬在利用过程中描述得不是很详细,作为小白的我看不懂啊,由此产生了此篇文章。
某大佬文章:https://xz.aliyun.com/t/6587
前置知识:LOAD DATA INFILE作用是可以把文件读入到数据库的某个表里,如果在远程连接状态下使用了LOCAL关键字,即LOAD DATE LOCAL INFILE,那么就会从客户端读取一个本地文件,存入服务器端的table里。
准备条件:
1、adminer 4.1.0 (作为客户端,可以用其他mysql客户端尝试)
2、下载POC 用来伪造服务端,下载地址:https://github.com/allyshka/Rogue-MySql-Server)
实验环境:
1、虚拟机win2003,ip:192.168.72.128 (运行了php的网站,将adminer放到网站目录下,可访问即可)
2、物理机win10,ip:192.168.110.108(用来运行伪造的mysql poc)
实验过程:
1、在虚拟机中部署好adminer,并确保在物理机中能访问
2、配置poc中的rogue_mysql_server.py文件
3、配置完成POC后就可以在物理机中运行POC,运行后POC将进入等待状态
4、此时可以在物理机的浏览器中尝试登陆adminer客户端(注意图中说明)
5、一切就绪的话,我们将会看到成功登陆
6、此时可以到POC所在文件夹的mysql.log文件中查看读取到的文件信息
网络上有很多大佬师傅对此洞进行科普/利用/实验,小弟在此处献丑了,有不对或错漏之处,还望斧正。