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