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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM