当前位置: 首页 > news >正文

BurpSuite 最强辅助插件,全自动 SQL 注入6种注入检测算法|v3.3.0更新全面重构

0x01 工具介绍

快速从流量中定位 SQL 注入点,直接决定挖掘效率。传统扫描工具往往请求量大、误报多、干扰严重,而纯手工测试又耗时费力。DetSql 插件专为 BurpSuite 打造,依托 Montoya API 实现轻量化运行,内置 6 种精准注入检测算法,能在流量中自动识别高风险注入点。DetSql v3.3.0 全面优化架构与判断逻辑,稳定性更强、误报率更低,让你在渗透测试实战中更快出洞,大幅提升渗透测试效率。

注意:现在只对常读和星标的公众号才展示大图推送,建议大家把渗透安全HackTwo"设为星标⭐️"则可能就看不到了啦!

下载地址在末尾 #渗透安全HackTwo

0x02 功能介绍

✨ 主要特性

主面板(dashboard)

左上显示原始流量,一共 7 列,从左至右依次为序号,从 0 开始;请求来源,proxy 或 repeater,为减少请求,其他模块来源点的请求将忽略;域名,如https://www.baidu.com;请求方式,get或post;URL路径,该路径不包含参数;响应体长度;提示,如果提示栏显示空白表示没有,否则将显示类型,如errsql,stringsql,多个存在多个类型使用-拼接显示。

在Logger模块中查看扫描流量,选择Extensions类型如下

例子

报错类型页面

order类型页面

数字类型页面

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

双引号问题

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

配置面板(config)

白名单为测试的请求域名,如 baidu.com,192.168.1.2,多个域名使用竖线分隔,不能填 C 段,不填表示测试全

判断方式

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

1.报错类型判断

  • 请求中任一参数值+报错 poc 作为新参数值,即 value+poc,其中 poc 包括:',%DF',",%DF",`,其中%DF考虑到宽字节,同时增加了 URL 编码的单双引号,在遇到 json 数据时增加了 Unicode 编码的单双引号。

  • 生成新请求后发送,响应匹配报错规则,添加了近 100 条正则匹配规则,匹配成功任一规则,即认为存在报错类型注入,标记该参数为 errsql,同时在括号中添加对应的报错正则规则作为备注一起显示,否则认为不存在报错类型注入。

2.数字类型判断

  • 当 value 为数字时,且该 value 不为 json 的键值,将发起以下请求判断,否则该 value 将不再判断,

  • 原始请求表示为:value->respbody,

  • poc1 请求:value-0-0-0->respbody1,请求完成后使用 Levenshtein 方法判断 respbody 和 respbody1 相似度是否超过 90%,如果不满足认为不存在数字类型的注入,否则将发送下一个请求判断,

  • poc2 请求:value-abc->respbody2,请求完成后使用 Levenshtein 方法判断 respbody2 和 respbody 相似度是否低于 90%并且 respbody2 和 respbody1 相似度也低于 90%,如果都满足即认为存在数字类型注入,标记该参数为 numsql。

3.order 类型注入

  • 当 value 不为空时,发起以下请求判断,否则该 value 将不再判断,

  • 原始请求表示为:value->respbody,

  • poc1 请求:value,0->respbody1,

  • poc2 请求:value,xxxxxx->respbody2,

  • 首先使用 Jaccard 方法判断 respbody 和 respbody1 的相似度低于 90%,若满足继续发送 poc2 请求,判断 respbody 和 respbody2 的相似度低于 90%,若满足继续后续判断,若不满足则直接停止判断,

  • poc3 请求:value,1->respbody3,

  • poc4 请求:value,2->respbody4,

  • 先发送 poc3 请求,使用 Jaccard 方法判断 respbody 和 respbody3 的相似度高于 90%,若满足则认为存在 order 类型的注入,若不满足继续发送 poc4 请求判断 respbody 和 respbody4 的相似度是否高于 90%,若满足则认为存在 order 类型的注入,标记该参数为 ordersql,否则认为不存在 order 类型的注入。

4.字符类型注入

  • 如果为 json 格式的数据,该键值 value 需被双引号包裹才会发起后续请求判断,否则该 value 将不再判断,

  • 原始请求表示为:value->respbody,

  • poc1 请求:value'->respbody1,此处为一个单引号,

  • poc2 请求:value''->respbody2,此处为两个单引号,

  • 首先使用 Levenshtein 方法判断 respbody 和 respbody1 的相似度低于 90%,若满足继续发送 poc2 请求,判断 respbody1 和 respbody2 的相似度低于 90%,注意如果原始请求不存在数据 respbody 和 respbody2 的相似度往往较高,如果原始请求存在数据 respbody 和 respbody2 的相似度往往较低,所有此处判断 respbody1 和 respbody2 的相似度。若满足低于 90%继续后续判断,若不满足则直接停止判断,

  • poc3 请求:value'+'->respbody3,此处为两个单引号,

  • poc4 请求:value'||'->respbody4,此处为两个单引号,

  • 先发送 poc3 请求,使用 Levenshtein 方法判断 respbody 和 respbody3 的相似度高于 90%,若满足则认为存在字符类型的注入,若不满足继续发送 poc4 请求判断 respbody 和 respbody4 的相似度是否高于 90%,若满足则认为存在字符类型的注入,标记该参数为 stringsql,否则认为不存在字符类型的注入。

5.布尔类型注入

  • 如果为 json 格式的数据,该键值 value 需被双引号包裹才会发起后续请求判断,否则该 value 将不再判断,

  • 原始请求表示为:value->respbody,

  • poc1 请求:value'||EXP(710)||'->respbody1

  • poc2 请求:value'||EXP(290)||'->respbody2

  • poc3 请求:value'||1/0||'->respbody3

  • poc4 请求:value'||1/1||'->respbody4

  • 发送poc1请求,使用 Levenshtein 方法判断respbody和respbody1的相似度低于90%,若满足则继续发送poc2请求,使用 Levenshtein 方法判断respbody1和respbody2的相似度低于90%,若满足则直接发送poc4请求,使用 Levenshtein 方法判断respbody2和respbody4的相似度高于90%,若满足则判断存在布尔类型注入,标记为boolsql。若respbody1和respbody2的相似度高于90%,则发送poc3请求,再使用 Levenshtein 方法判断respbody和respbody3的相似度高于90%,若满足则直接发送poc4请求,使用 Levenshtein 方法判断respbody2和respbody4的相似度高于90%,若满足则判断存在布尔类型注入。

6.附加判断

  • 除了前述通过计算相似度作为判断规则外还添加了响应长度的变化阈值作为判断辅助,从而丰富判断依据,例如两个响应长度相同时可直接判断相似度为百分之百,两个响应长度差超过某个值此处设为100,就将辅助判断的相似度定位百分之九十,在判断时如果希望此时的相似度较大(小)时为好,则会选择用算法计算出的相似度和辅助判断的相似度两者中较大(小)者去比较;如果两个响应的长度差很小,这种情况会先将两个字符串前后缀相同部分删除,若删除后的字符串中出现明显为poc的内容,则也会删除,删除后如果两个字符串变为空则判断相似度为100%,一个为空一个不为空则相似度为0,不满足前述情况则再使用算法计算出的相似度去比较。

0x03更新说明

#🏗️ 架构重构 代码结构重组 按职责划分包结构:config、core、injection、logging、model、ui、util 删除根目录下 8 个混杂文件(DetSql.java、MyHttpHandler.java 等) 移除过时文件:ThreadSafeAttackMap.java #注入策略模式 新增 InjectionStrategy 接口和 AbstractInjectionStrategy 抽象类 实现 7 种注入策略:StringInjection、NumericInjection、BooleanInjection、 ErrorBasedInjection、OrderByInjection、CustomInjection 新增 InjectionStrategyManager 统一管理 消除 MyHttpHandler 中 5000+ 行重复代码 #✨ 新增功能 配置管理 ConfigManager:统一配置管理器,支持 YAML ConfigValidator:配置验证器 DetSqlYamlConfig:YAML 配置模型 支持路径黑名单、域名过滤、参数黑名单 ...

0x04 使用介绍

📦安装指南

1.打开 BurpSuite,切换到Extensions选项卡

2.在Installed面板中点击Add按钮

3.选择Extension typeJava,点击Select file加载编译好的DetSql.jar

下载地址:

原文末尾获取下载地址

https://mp.weixin.qq.com/s/GF_svScEPiGll0SP_2GDFg
http://www.jsqmd.com/news/457060/

相关文章:

  • 文昌加速度:中国商业航天最繁忙的发射基地
  • 2026高评价工业环氧面漆品牌推荐指南 - 优质品牌商家
  • 一文吃透 SQL 注入:实战案例 + 绕过姿势总结
  • 震惊!这3家瓷砖胶厂家,装修师傅打死不说!
  • 怎么一步步实现小米智能家居之卧室篇
  • 让 AI 像大佬一样思考,已斩获 49 个 CVE 的开源0day!全新一代AI代审工具发现效率提升 10
  • 2026年科小申报倒计时:软著成“隐形加分利器”,已有企业提前布局!
  • RISC和CISC的比较
  • 精压机结构简图——CAD
  • 网工运维绝对不能错过的7大顶级OpenClaw工具和集成
  • 动手学深度学习笔记:丢弃法(Dropout)
  • 基于 DeepSeek 大模型的沉浸式在线教育管理平台 在线教育管理平台,接deepseek大模型,实现AI智能问答
  • 500kW三相光伏并网逆变器的仿真模型: 1.光伏PV, DC/DC采用MPPT最大功率点跟踪...
  • 动手学深度学习笔记:丢弃法(Dropout)代码实现
  • Linux 无处不在,却征服不了台式机?
  • 从“群聊会议”到“施工蓝图”:LangGraph如何让AI工作流稳如泰山?
  • Linux Vim编辑器完全教程:从入门到精通,程序员必备
  • 企业主管必看!Ecovadis评级材料的时效性 - 奋飞咨询ecovadis
  • OpenClaw如何重塑AI代理为个人操作系统的?为什么值得每一个网络工程师关注?
  • 基于 YOLOv8 的肺炎 X 光影像智能辅助诊断系统 前沿 AI 算法 + 实用医疗场景
  • 2026年玻璃钢桥架厂家实力推荐:河北沃瀚环保设备有限公司全系产品解析 - 品牌推荐官
  • 织梦DedeCms 5.7 无法生成首页的解决方法
  • SQL 基础及 MySQL DBA 运维实战 - 4:MySQL 备份与恢复全实战(XtraBackup和mysqldump)
  • 2026年3月安全门窗十大品牌最新推荐 国标权威抗台风 - 资讯焦点
  • K8S存储管理:从Volume到PV/PVC实战
  • 2026年企业人事服务推荐:厦门布瑞泽人才信息服务有限公司,人事代理/外包/招聘一站式解决方案 - 品牌推荐官
  • 2026年谷歌SEO公司权威榜单:十大顶级服务商深度评测 - 资讯焦点
  • 2026成人用品加盟平台哪家好?5大维度实测对比,找到最适合你的那一款 - 资讯焦点
  • [学点编程]python workout,每天10分钟学会python 读书笔记
  • 2026钢带增强螺旋波纹管厂家推荐:pe钢带增强波纹管/钢带增强pe波纹管/hdpe增强钢带螺旋波纹管厂家精选。 - 品牌推荐官