• 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 . ogue_mysql_server.py   配置完后放着

    开启Navicat

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

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

     

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

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

     确实读取到了1.txt

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

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

  • 相关阅读:
    Codeforces Round #104 (Div. 1) C. Lucky Subsequence
    UVALive 4848 Tour Belt
    ...
    HDU4609 计数问题+FFT
    hdu6129 Just Do It!
    hdu6133 Army Formations 线段树合并
    迭代FFT
    第二类Stirling数
    project euler113
    HBase 常用shell命令
  • 原文地址:https://www.cnblogs.com/BOHB-yunying/p/10820453.html
Copyright © 2020-2023  润新知