MYSQl任意文件读取

实现原理:

攻击者搭建一个伪造的mysql服务器,当有用户去连接上这个伪造的服务器时。

攻击者就可以任意读取受害者的文件内容。

主要是因为LOAD DATA INFILE这个语法

作用是读取一个文件的内容并且放到一个表中。

 
  1. load datalocalinfile"/home/data.csv"intotableTestTable;

读取客户端文件,

漏洞利用:

漏洞利用的相关工具及源码已在github,先亮出地址:https://github.com/allyshka/Rogue-MySql-Server

1.在python2运行脚本文件roguemysqlserver.py

在roguemysqlserver.py文件中filelist 为读取受害者的文件地址。

运行py脚本文件。

2.受害者来连接攻击者伪造的mysql服务器,这里使用虚拟机开了一台centos为受害者来连接。

由于我们搭建的mysql为欺骗受害者访问,所有这里采用账号密码都为root。

3.受害者在连接的时候文件已经被读取到我们的本地文件mysql.log中

下面为受害机器centos中的内容:

可以看到受害者centos的/etc/passwd的内容都被读取到了攻击者的mysql.log文件中。

应用场景:

1.配合网站的重装漏洞进行利用读取服务器的任意文件。

2.数据迁移等需要连接外部数据的功能点

3.搭建在蜜罐上读取攻击者的信息。

漏洞修复:

禁掉load读取文件

使用加密链接ssl-mode=VERIFY_IDENTITY

参考文章

https://y4er.com/post/mysql-read-client-file/

发布了657 篇原创文章 · 获赞 331 · 访问量 31万+

猜你喜欢

转载自blog.csdn.net/Dome_/article/details/104055494