MySQL服务端恶意读取客户端文件漏洞 (DDCTF2019和国赛均涉及到这个漏洞)

mysql协议中流程和go语言实现的恶意mysql服务器:https://blog.csdn.net/ls1120704214/article/details/88174003

poc :https://github.com/allyshka/Rogue-MySql-Server

简单的原理:http://aq.mk/index.php/archives/23/

今天实验了好久,直到最后一次才成功,之前的几次什么都读取不到,搞了一个下午,到现在,没午睡,好困呀,写完睡觉去,晚上起来还要肝概率论和攻防世界

使用的mysql客户端:Navicat

我直接在物理机上实现这个过程,如果想对比的更清楚,可以在自己的虚拟机上来实验,模拟linux的客户端来读取,一般服务器都是linux系统。

 

先把源码dump下来,然后修改py脚本中的port(随你,一般是3306),这里我修改成了3307,filelist是你想要读取的客户端文件,然后修改成想读取的

然后进入命令行, python2 .\rogue_mysql_server.py   配置完后放着

开启Navicat

连接我们伪造的恶意mysql服务器

然后就会读取到需要的文件,在mysql.log中

 

 

 

 确实读取到了hosts文件,但是并不会读取到第二个我需要读取的文件1.txt。

因为只有客户端请求一次后,才能读取一个文件。原因是客户端连接成功后只执行了select @@version_comment limit 1来获取详细版本信息(Source Distribution ),一次查询只能获取一个文件,如果在客户端执行两次查询就可以获取后面两个文件。呢么我们查询下

 

 确实读取到了1.txt

终于算试验成功了,不实验根本体会不到这种感觉。

涉及到2019DDCTF中的mysql弱命令和国赛中的宇宙最简单的sql

转载于:https://www.cnblogs.com/BOHB-yunying/p/10820453.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值