文章目錄
- 一、Sqlmap簡介
- 1.1 sqlmap可以對URL干嘛?
- 1.2 Sqlmap支持的注入技術
- 1.3 SQLmap檢測注入漏洞的流程
- 1.4 Sqlmap的誤報檢測機制
- 二、sqlmap基本使用
一、Sqlmap簡介
sqlmap使用教程
1.1 sqlmap可以對URL干嘛?
- 判斷可注入的參數
- 判斷可以使用哪一種SQL注入技術進行注入
- 判斷識別數據庫的類型
- 根據用戶的選擇,從數據庫中讀取數據
1.2 Sqlmap支持的注入技術
- 基于聯合查詢的注入:可以使用UNION的情況下的注入。
- 基于布爾的盲注:根據返回頁面判斷條件真假的注入。
- 基于時間的盲注:不能根據頁面返回內容判斷任何信息,用條件語句查看時間延遲語句是否執行(即頁面返回時間是否增加)來判斷。
- 基于報錯的注入:頁面會返回錯誤信息,或者把注入的語句的結果直接返回在頁面中。
- 堆查詢注入:同時執行多條語句的注入。
1.3 SQLmap檢測注入漏洞的流程
- 網站連通性檢測:檢測目標的連接狀態
- WAF探測:檢測網站是否受到WAF保護
- 網頁穩定性探測:檢測網頁是否穩定
- 參數動態性檢測:檢測參數是否具有動態性
- 啟發式注入檢測:檢測該參數點是否時動態的、是否為可能的注入點。
1.4 Sqlmap的誤報檢測機制
- 誤報檢測:Sqlmap的布爾盲注、時間盲注方式判斷注入點時,存在誤報的可能。為防止誤報,sqlmap引入了誤報檢測機制。
- 兩個基礎檢測算法:
- 頁面相似度對比技術(在各種注入技術中大量使用)
在Sqlmap檢測的整個過程中,會有一個原始響應的定義,指的是在網站連通性檢測的過程中,如果網站成功響應(包括狀態碼、HTTP響應頭、HTTP響應體)。一個HTTP請求成功響應后,將于原始響應進行比較,得出對比結果,算法輸出為True當前響應與原始響應相似,算法輸出為False表示當前響應與原始響應不相似。 - 高斯分布識別響應機制(在UNION注入和時間盲注過程中使用)
網站的響應是基于邏輯的,如果一組請求,網站的處理邏輯相同,那么響應幾乎也是相同的。如果某一個響應出現了變化,則可以認為網站處理邏輯變了,這種邏輯的變化,可能正是因為注入成功了。
- 頁面相似度對比技術(在各種注入技術中大量使用)
二、sqlmap基本使用
sqlmap
sqlmap -u "url" //-u選項是檢測注入點
sqlmap -u "url" --dbs //--dbs選項是列出所有數據庫名
sqlmap -u "url" --current-db //--current-db選項是列出當前數據庫的名字
sqlmap -u "url" -D "數據庫名" --tables //-D是指定一個數據庫 --tables是列出這個數據庫的所有表名
sqlmap -u "url" -D "數據庫名" -T "表名" --columns //-T是指定表名 --columns是列出所有的字段名
sqlmap -u "url" -D "數據庫名" -T "表名" -C "字段名" --dump //-C是指定字段 --dump是列出字段內容
sqlmap -u "url" --os-shell //運行shell命令