SqlScout 是一个基于 Montoya API 2026.4 开发的 Burp Suite SQL 注入辅助检测插件,定位是“快速筛查 + 人工复核”的实战型工具。
它源于对早期 xia SQL 插件的重构,目前重点放在以下几个方向:
- 更清晰的 Montoya 架构
- 更稳的参数变异能力
- 更好的嵌套 JSON / URL 编码 JSON 支持
- 更可控的过滤与策略配置
- 更适合日常人工测试的结果展示
SqlScout 不是一个“全自动确认漏洞”的重型扫描器,而是一个偏轻量、可控、适合 Burp 日常工作流的 SQL 注入辅助插件。
适合的使用场景:
- 在
Proxy/Repeater中快速筛出可疑请求 - 对复杂参数结构做定向测试
- 结合人工经验观察报错、差异、延时和参数上下文
- 为后续手工验证或其他工具联动提供线索
- 支持监听
Proxy - 支持监听
Repeater - 支持右键菜单手动发送扫描
- URL Query 参数
- 常规 Body / Form 参数
- Cookie 参数
- JSON 参数
- 多层嵌套 JSON
- JSON 数组中的叶子值
- URL 编码后的 JSON 参数
multipart/form-data中的文本字段- 隐藏参数追加 fuzz(当前以 URL/Form 请求为主)
- 普通参数更新
- JSON 参数优先使用 Montoya 原生更新
- JSON 回退到基于偏移量的局部改写
- JSON 路径展示,如:
items[0].idcommonDto[1].value
- 请求高亮显示被修改的值
- URL 编码 JSON 的局部高亮
- 报错特征命中
- 响应差异提示
- 响应相似度显示
- 时间延迟提示
INFOSUSPECTEDCONFIRMED
当前规则说明:
- 只要命中
Err,即视为最高等级CONFIRMED
当前已经具备基础分类能力:
- 通用参数
- 数值控制参数
- 排序控制参数
例如:
id / page / limit / offset / pageSize会被当作数值控制参数sort / order / orderBy / direction会被当作排序参数
排序参数会自动使用更贴近 ORDER BY 场景的 payload;数值型参数会自动追加 -1 / -0。
- 域名白名单
- 域名黑名单
- 后缀过滤
- 静态资源跳过
- 图片响应识别跳过
multipart文件字段跳过策略
- 默认 payload 策略
- 自定义 SQL payload
- Payload 分组模式:
autodefaultordertimeerrorcustom
说明:
当前的 Payload 分组 更像“策略切换器”,还不是完整的多套 payload 库管理器。
当前已引入独立的 ResponseComparator,用于替代过于粗糙的响应差异判断:
- 保留长度差作为快速信号
- 大响应按头尾片段比较
- 自动裁剪公共前后缀
- 在结果表中展示相似度
主界面包含:
- 扫描结果表
- 参数尝试详情表
- Request / Response 查看器
设置页包含:
- 常规
- 白名单
- 黑名单
- 后缀过滤
- 隐藏参数
- Payload 分组
- 自定义 SQL
- 报错特征
- 日志
- 打开
SqlScout标签页 - 在
常规中开启Proxy或Repeater监听 - 按需配置白名单、黑名单、后缀过滤
- 浏览结果表并点击查看详情
- 在
Proxy或Repeater中选中请求 - 右键进入
Extensions - 点击
Send to SqlScout - 在
SqlScout结果区查看测试情况
- 打开
隐藏参数页签 - 输入隐藏参数名,支持按行或逗号分隔
- 重新发送目标请求到
SqlScout
- 打开
自定义 SQL - 填写 payload 列表
- 点击加载
- 结合
Payload 分组或自定义 payload选项使用
环境要求:
- Java 17
- Maven 3.x
- Gradle 8.x(可选)
构建命令:
mvn clean package或使用 Gradle:
gradle clean build生成产物:
target/SqlScout.jar
Gradle 产物:
build/libs/SqlScout.jar
项目已包含 GitHub Actions 自动构建流程:
- 触发条件:
- push 到
main或master - Pull Request
- 手动触发
workflow_dispatch
- push 到
- 构建环境:
- Java 17
- Gradle 8.10.2
- 产物:
build/libs/SqlScout.jar
工作流文件位置:
.github/workflows/build.yml
- 打开 Burp Suite
- 进入
Extensions - 添加构建后的
target/SqlScout.jar - 加载成功后会看到
SqlScout标签页
虽然这版已经可用,但还有一些边界需要明确:
- 不是全自动漏洞确认器
- GraphQL 专项扫描尚未实现
- JSON 隐藏参数深度追加仍然保守
- Payload 分组还没有演进成完整的多组 payload 管理系统
- 判定规则还在持续迭代
如果你准备把它放到 GitHub 上,建议把项目定位写成:
面向 Burp 日常工作流的 SQL 注入辅助检测与参数变异插件
这个定位比“自动化 SQL 注入扫描器”更准确,也更符合当前实现。
当前有效代码:
src/main/java
保留的旧版反编译参考代码:
src/burp
后续开发计划:
REFACTOR_PLAN.md
目前已经完成的重构重点包括:
- Montoya API 入口迁移
- 参数变异模块拆分
- JSON / URL 编码 JSON 支持
- 黑白名单和后缀过滤配置化
- 隐藏参数 fuzz
- Payload 分组初版
- 响应相似度比较器
后续更值得继续推进的方向:
- 更强的响应比较与误报控制
- 更完整的 Payload 分组管理
- GraphQL 支持
- 更细的排序/数值/结构化参数策略
本项目在设计、重构思路和能力取舍上,参考了以下开源项目: