利用mysql的LOAD DATA INFILE的功能读取客户端文件

前言:今天在浏览某知论坛时,看到某大佬在渗透过程中使用伪造的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文件中查看读取到的文件信息

网络上有很多大佬师傅对此洞进行科普/利用/实验,小弟在此处献丑了,有不对或错漏之处,还望斧正。

猜你喜欢

转载自www.cnblogs.com/0x11/p/12058883.html