簡介: DetSql是一款基于Burp Suite Java插件API開發(fā)的SQL注入檢測工具,旨在高效地從HTTP流量中識別潛在的SQL注入風險請求。該插件設計的目標是在最小化干擾的同時,提升SQL注入測試的效率。通過智能分析網(wǎng)絡請求,DetSql能夠幫助安全測試人員快速定位那些可能含有SQL注入漏洞的請求。 提示:DetSql采用Montoya API進行開發(fā),BurpSuite版本需滿足(>=2023.12.1) 判斷方式:
報錯類型判斷: 在請求的任意參數(shù)值后面加上特定的報錯測試負載(PoC),形成新的參數(shù)值 value + PoC。這里的PoC包括但不限于 ',%DF'、',%DF' 和 `%DF`,其中 %DF 考慮到了寬字節(jié)的問題,同時增加了URL編碼的單雙引號以及在處理JSON數(shù)據(jù)時的Unicode編碼單雙引號。發(fā)送帶有新參數(shù)值的請求后,檢查響應是否符合預定義的近100條報錯正則表達式之一。如果任何一個規(guī)則匹配成功,則認為存在報錯類型的注入,并將該參數(shù)標記為 errsql,同時備注相應的報錯正則表達式。反之,則認為不存在此類注入。 數(shù)字類型判斷:
order 類型注入: 對于非空的 value,執(zhí)行以下測試流程,否則不對該 value 進行進一步判斷: 發(fā)送原始請求 value->respbody。 發(fā)送帶有PoC1(value,0)的請求,獲取 respbody1,并使用Jaccard相似度算法與 respbody 比較,相似度低于90%則繼續(xù)下一步。 發(fā)送帶有PoC2(value,xxxxxx)的請求,獲取 respbody2,再次與 respbody 比較相似度,低于90%則繼續(xù)。 發(fā)送帶有PoC3(value,1)的請求,獲取 respbody3,與 respbody 比較相似度,若高于90%則認為存在Order類型的注入,標記為 ordersql。 若未達到上述條件,繼續(xù)發(fā)送帶有PoC4(value,2)的請求,獲取 respbody4,與 respbody 比較相似度,若高于90%則同樣認為存在Order類型的注入。 字符類型注入:
附加判斷: 除了基于相似度算法的判斷之外,還引入了響應長度變化的閾值作為輔助判斷標準,以增強判斷的準確性。例如,當兩個響應長度相同視為完全相似;當響應長度差異超過一定值(如100字節(jié))時,輔助判斷的相似度設定為90%;當響應長度差異極小時,則直接采用算法計算的相似度進行比較。在實際判斷過程中,根據(jù)需要選擇算法計算的相似度或輔助判斷的相似度中較大的(或較小的)值來進行最終的相似度比較。 使用方法:
主面板: 左上角顯示原始流量的詳細信息,包括序號、請求來源、域名、請求方式、URL路徑、響應體長度及漏洞提示;右上角則列出測試請求的流量,涵蓋參數(shù)名、PoC、響應體長度、狀態(tài)碼、相似度、請求時間和漏洞提示,僅顯示存在漏洞的請求;左下和右下區(qū)域分別展示選中請求的詳細請求與響應內容。 在Logger模塊中查看掃描流量,選擇Extensions類型如下: 例子: 報錯類型頁面: order類型頁面: 數(shù)字類型頁面: 字符類型頁面(包含多種類型): 雙引號問題:
配置面板(config): 配置說明: 白名單:用于指定允許測試的請求域名,支持形式如 baidu.com、192.168.1.2,多個域名間使用豎線 | 分隔。不允許填寫C段地址,留空則表示測試所有域名。 黑名單:用于指定禁止測試的域名,確保這些域名不會被誤測試。 禁止后綴:列出不應被測試的靜態(tài)文件后綴,例如 .jpg、.png 等,默認已包含常見靜態(tài)文件的后綴。 報錯 PoC:允許用戶自定義報錯類型的測試負載。一旦設置了自定義報錯 PoC,內置的報錯 PoC 將不再使用。設置后需點擊確認按鈕使配置生效。 功能開關: 開關:點擊勾選以啟動測試。 測試 Cookie:勾選后將測試Cookie參數(shù)。 只測報錯:勾選后將僅測試報錯類型注入,不進行其他類型的注入測試。 接受 Repeater:勾選后,工具將監(jiān)聽并測試來自Repeater模塊的請求,同時考慮了請求去重功能,但對于來自Repeater模塊的請求不進行去重處理,確保每個請求都能被測試。 其他特性: 手動停止請求:對于來自Proxy模塊的請求,提供了手動停止測試的功能。通過右鍵菜單中的“結束該請求測試”選項,可以停止正在進行或等待測試的請求。請求的狀態(tài)會在UI中更新以反映這一變化。 響應體大小限制:對響應體的大小進行了限制,響應體長度超過50000字節(jié)的請求將不被測試;長度在10000到50000字節(jié)之間的請求測試速度可能會較慢,為此設置了一個較低的線程數(shù)以保證手動測試的基本需求。 配置保存與加載:提供了將當前配置保存到文件或從文件中加載配置的功能,方便用戶管理和恢復測試設置。 手動停止頁面: 輔助面板(codetool):
建議: DetSql目的用于輔助手動測試,由于設置線程較小不利于大量請求時的被動掃描,建議使用時在白名單處設置測試域名或IP,如www.baidu.com,以此減少不必要的無效掃描,填baidu.com即代表baidu.com及其所有子域,多個可表示為baidu.com|qq.com 若出現(xiàn)卡頓建議按此配置,如下: 正常很少出現(xiàn)卡頓情況,同時建議使用最新版進行測試,經(jīng)測試,未設置白名單將請求掃描數(shù)量快速加到170個左右未發(fā)現(xiàn)卡頓、閃退等異常,可正常運行,如下:
|
|