乐于分享
好东西不私藏

[工具推荐]sql注入快速检测burp插件DetSql

[工具推荐]sql注入快速检测burp插件DetSql
免责声明
由于传播、利用本公众号所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号陌笙不太懂安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉,谢谢!
前言
DetSql是基于 BurpSuite Java 插件 API 开发的 SQL 注入探测插件,主要作用为快速从 http 流量中筛选出可能存在 SQL 注入的请求,在尽可能减少拦截的情况下提高 SQL 注入测试效率。

注意

DetSql采用 Montoya API 进行开发,BurpSuite 版本需满足(>=2023.12.1)。

判断方式

为方便叙述使用 value 表示请求的一个参数值,respbody 表示该请求的响应体,value->respbody,表示参数值为 value 时发送请求得到响应体 respbody,以下判断依赖 MySQL,sqlserver,oracle,postgresql 四种数据库某版本测试结果。

1.报错类型判断

将请求中任一参数的值与报错检测 Payload(POC)拼接后形成新的参数值,格式为:原始值 + POC。POC 包括:'%DF"%DF``,其中%DF用于考虑宽字节注入;同时增加 URL 编码格式的单双引号;对于 JSON 数据,额外增加 Unicode 编码的单双引号。构造新请求并发送后,系统使用近 100 条正则表达式匹配响应内容。若匹配到任意一条规则,则判定存在报错注入,标记该参数为errsql`,并在括号中备注匹配到的正则规则;否则判定为不存在报错注入。

2.数字类型判断

当参数值为数字且不是 JSON 中的键名时,发起以下请求进行判断(否则跳过):

  • 原始请求:value → 响应体 respbody

  • POC1 请求:value-0-0-0 → 响应体 respbody1。使用 Levenshtein 算法比较 respbody 与 respbody1 的相似度。若相似度 ≤ 90%,则终止判断;否则继续。

  • POC2 请求:value-abc → 响应体 respbody2。要求 respbody2 与 respbody 的相似度 < 90%,且 respbody2 与 respbody1 的相似度也 < 90%。若同时满足,则判定存在数字型注入,标记为 numsql

3.Order 类型注入

当参数值不为空时执行以下判断(否则跳过):

  • 原始请求:value → respbody

  • POC1 请求:value,0 → respbody1。若 respbody 与 respbody1 的 Jaccard 相似度 ≥ 90%,则终止;否则继续。

  • POC2 请求:value,xxxxxx → respbody2。要求 respbody 与 respbody2 的相似度 < 90%,否则终止。

  • POC3 请求:value,1 → respbody3。若 respbody 与 respbody3 的相似度 > 90%,则判定存在 Order 注入,标记为 ordersql;否则继续。

  • POC4 请求:value,2 → respbody4。若 respbody 与 respbody4 的相似度 > 90%,则判定存在 Order 注入,标记为 ordersql;否则判定不存在。

4.字符类型注入

若为 JSON 格式数据,该键值需被双引号包裹才可发起判断(否则跳过):

  • 原始请求:value → respbody

  • POC1 请求:value'(一个单引号)→ respbody1。若 respbody 与 respbody1 的相似度 ≥ 90%,则终止;否则继续。

  • POC2 请求:value''(两个单引号)→ respbody2。要求 respbody1 与 respbody2 的相似度 < 90%(注意:若原始无数据,respbody 与 respbody2 相似度往往较高;若有数据,则相似度较低,因此此处判断 respbody1 与 respbody2 的相似度)。若不满足 < 90%,则终止;否则继续。

  • POC3 请求:value'+' → respbody3。若 respbody 与 respbody3 的相似度 > 90%,则判定存在字符型注入,标记为 stringsql;否则继续。

  • POC4 请求:value'||' → respbody4。若 respbody 与 respbody4 的相似度 > 90%,则判定存在字符型注入,标记为 stringsql;否则判定不存在。

其他类型不做过多说明。

主面板(dashboard)

左上显示原始流量,一共 7 列,从左至右依次为序号,从 0 开始;请求来源,proxy 或 repeater,为减少请求,其他模块来源点的请求将忽略;域名,如https://www.baidu.com;请求方式,get或post;URL路径,该路径不包含参数;响应体长度;漏洞提示,如果漏洞提示栏显示空白表示没有漏洞,否则将显示漏洞类型,如errsql,stringsql,多个存在多个类型使用-拼接显示。右上显示为测试请求流量,一共7列,从左至右依次为参数名、poc、响应体长度、状态码、相似度,使用百分比表示、请求时间、漏洞提示,此处如果测试后不存在漏洞将不显示该请求,只显示测试后存在问题的请求。左下和右下分别显示请求与响应,点击上述的原始请求或测试请求将在此处显示对应的请求和响应。
在Logger模块中查看扫描流量,选择Extensions类型如下

例子

报错类型页面

order类型页面
数字类型页面
字符类型页面(包含多种类型)

双引号问题

由于双引号闭合的情况出现极少,此处仍在报错类型中保留了双引号的原因,经本人测试出现过双引号报错的情况,因此仍在报错类型保留了双引号,如想自行设置报错payload可在配置面板自行设置。

配置面板(config)
白名单为测试的请求域名,如 baidu.com,192.168.1.2,多个域名使用竖线分隔,不能填 C 段,不填表示测试全部;黑名单为禁止测试的域名;禁止后缀为一些静态文件的后缀,默认设置了常见的静态后缀;报错 poc 可自行设置报错类型的测试 poc,当设置了报错 poc 后内置的报错 poc 将不再使用,上述四个配置内容设置后需点击确认后生效。四个复选框,开关点击勾选后启动测试,测试 cookie 勾选后可测试 cookie 参数,只测报错勾选后不再测试除报错类型外其他类型的注入,设置接受 repeater 复选框主要是为了保持代码尽可能简洁,也不再右键中发送功能,接受 repeater 勾选后可监听测试来自 repeater 模块的请求,并且合并了请求去重功能的考虑,只对 proxy 来源请求的去重,请求去重算法为SM3,来自 repeater 模块的请求将不考虑该请求的重复性,是否测试过都将测试。这里可对来自proxy模块的请求进行手动停止,右键中设置了一个结束该请求测试的功能,如果请求已进入测试列表想要停止测试该请求,可右键点击end this data选项停止该请求,第一种情况为该请求正在等待其他线程的释放此时,点击end this data后run状态变为手动停止,第二种情况为该请求已在测试,点击end this data后也会停止测试同时run状态栏将不显示任何字符;同时对响应体body的长度做了长度限制,长度超过50000的请求不再测试,长度在10000到50000之间测试速度较慢,此处设置一个较低的线程但基本可满足手动测试的需求。最后添加了可将上述配置保存在文件的功能,可保存或从文件中载入配置。
手动停止页面

删除日志页面

为方便分析,dashboard处添加了右键删除日志的功能,可删除选择的日志;或者删除不存在漏洞的所有日志,包括vulnstate值为空和手动停止的日志

辅助面板(codetool)

由于 burpsuite 自带的 base64 编码,URL 编码解码遇到中文会出现乱码,因此添加了基于 UTF-8 的可编解码中文的 base64,URL 编码,如果 base64 解码后为 json 字符串可点击 JSON 格式化按钮对其格式化,同时为便于查看中文还增加了 Unicode 解码。

建议

DetSql目的用于辅助手动测试,由于设置线程较小不利于大量请求时的被动扫描,建议使用时在白名单处设置测试域名或IP,如www.baidu.com,以此减少不必要的无效扫描,填baidu.com即代表baidu.com及其所有子域,多个可表示为baidu.com|qq.com,若出现卡顿建议按此配置,如下

正常很少会出现卡顿情况,同时建议使用最新版进行测试,经本人测试,未设置白名单将请求扫描数量快速加到170个左右未发现卡顿、闪退等异常,可正常运行,如下
工具地址
https://github.com/saoshao/DetSql

后台回复加群加入交流群

广告:cisp pte/pts &nisp1级2级低价报考  

陌笙安全纷传圈子+陌笙src挖掘知识库+陌笙安全漏洞库+陌笙安全面试题库简单介绍加入纷传圈子知识库+漏洞库+面试题库

如果觉得合适可以加入,圈子目前价格39.9元,价格只会根据圈子内容和圈子人数进行上调,不会下跌。。。  

圈子福利 

edu漏洞挖掘1v1指导出洞

POC库&&更新适配afrog&&nuclei&&dddd的POC&1day/Nday等&&dddd二开工具[助力渗透测试&&红蓝攻防]

工具截图

实战效果

poc库【后续持续更新】

陌笙src挖掘知识库介绍(内容持续更新中!!!)

信息收集(主域名信息收集,子域名信息收集等&会永久提供fofa-key助力)弱口令漏洞&未授权访问漏洞挖掘任意文件读取&删除&下载&上传漏洞sql注入漏洞url重定向漏洞csrf&ssrf漏洞挖掘XSS&XXE漏洞挖掘等等常见漏洞cors&目录遍历&越权漏洞挖掘EDUSRC(证书站挖掘案例分享&edusrc挖掘技巧分享)CNVD挖掘技巧分享&实战案例报告编写公益漏洞挖掘(公益src挖掘漏洞分享&提供补天1权重资产)SRC挖掘实战(针对各种常见功能总结的常见测试思路等快速提升)经典常见Nday漏洞(常见中间件&以及各种常见框架)复现云安全相关漏洞挖掘(云key扫盲&云存储桶&快速识别云环境&云攻防)AI相关学习(AI基础&AI代码审计实战测试&webLLM攻击等)APP&小程序漏洞挖掘等各模块不在一一介绍

信息收集

src挖掘基础

src挖掘实战

edusrc

经典nday复现

云安全&AI安全

陌笙安全漏洞库介绍

最新漏洞查看1day&0day分享EDU学校相关漏洞Web应用漏洞CMS漏洞OA产品漏洞中间件漏洞云安全漏洞人工智能漏洞其他漏洞

陌笙安全面试库

渗透测试基本问题一汇总渗透测试基本问题二汇总渗透测试基本问题三汇总微步护网面试题目长亭科技面试深信服护网面试启明星辰渗透测试面试题目安恒面试题目360面试奇安信护网面试运维面试题目运维面试题库网安面试相关文档大全相关面试文章推荐等等

陌笙纷传圈子介

1、src挖掘思维导图,信息收集思维导图,edusrc挖掘思维导图,以及后续的红队&面试思维导图&自己网安笔记等持续更新22025-2026的edusrc实战报告包含证书站和非证书站以及2025之前的各种优质报思路分享3、各种src报告思路分享(内部&外部)4、分享各种src挖掘&edusrc挖掘培训资料&视频5、不定期分享通杀、0day6、有圈子群可以技术交流以及不定期抽取证书&免费rank7.分享各种护网资料各家安全厂商讲解视频&精选实战面试题目8、各种框架漏洞技巧分享9、各种源码分享(泛微、正方系统、用友等)10、漏洞挖掘工具&信息收集工具&内网渗透免杀等网安工具分享11、各种ctf资料以及题目分享12、cnvd挖掘技巧&CNVD资产&src资产分享&补天1权重资产分享&fofakey共用13、免杀、逆向、红队攻内网防渗透等课程分享14、漏洞库&字典以各种内容不在一一说明15、cisp-pte/pts&nisp一级&nisp二级&edusrc证书内部价格15、如果有漏洞挖掘问题或者工具资料需求可以找群主(尽量满足)

目前700多条内容,扫描下方二维码查看详情以及加入圈子,持续更新中。。                          

如果觉得合适可以加入,价格不定期会根据圈子内容和圈子人数进行上调。。