社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

MYSQl任意文件读取

saulGoodman • 5 年前 • 303 次点击  

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/



Ms08067安全实验室
专注于普及网络安全知识。团队已出版《Web安全攻防:渗透测试实战指南》,《内网安全攻防:渗透测试实战指南》,目前在编Python渗透测试,JAVA代码审计和二进制逆向方面的书籍。
团队公众号定期分享关于CTF靶场、内网渗透、APT方面技术干货,从零开始、以实战落地为主,致力于做一个实用的干货分享型公众号。

官方网站:www.ms08067.com

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/55787
 
303 次点击