@@ -6,24 +6,65 @@ Burp Suite 扩展插件,用于将 HTTP 请求发送到 SQLMap WebUI 后端进
66
77```
88burpEx/
9- ├── legacy-api/ # 传统 Burp API 插件 (Java 11)
9+ ├── legacy-api/ # 传统 Burp API 插件 (Java 11)
1010│ ├── src/main/java/com/sqlmapwebui/burp/
11- │ │ ├── SqlmapWebUIExtension.java # 插件入口
12- │ │ ├── ui/ # UI 组件
13- │ │ ├── config/ # 配置管理
14- │ │ └── http/ # HTTP 客户端
15- │ ├── pom.xml
16- │ └── target/ # 构建输出
17- └── montoya-api/ # Montoya API 插件 (Java 17, Burp 2023.1+)
18- ├── src/main/java/com/sqlmapwebui/burp/
19- │ ├── SqlmapWebUIExtension.java # 插件入口
20- │ ├── ui/ # UI 组件
21- │ ├── config/ # 配置管理
22- │ └── http/ # HTTP 客户端
23- ├── pom.xml
24- └── target/ # 构建输出
11+ │ │ ├── BurpExtender.java # 插件入口 (Legacy API)
12+ │ │ ├── SqlmapUITab.java # 主UI标签页
13+ │ │ ├── panels/ # UI面板组件
14+ │ │ ├── dialogs/ # 对话框组件
15+ │ │ └── [共享代码文件...]
16+ │ └── pom.xml
17+ │
18+ ├── montoya-api/ # Montoya API 插件 (Java 17+, Burp 2023.1+)
19+ │ ├── src/main/java/com/sqlmapwebui/burp/
20+ │ │ ├── SqlmapWebUIExtension.java # 插件入口 (Montoya API)
21+ │ │ ├── SqlmapContextMenuProvider.java # 右键菜单提供者
22+ │ │ ├── HttpRequestUtils.java # UTF-8请求处理
23+ │ │ ├── util/ # 工具类
24+ │ │ ├── SqlmapUITab.java # 主UI标签页 (与Legacy共享)
25+ │ │ ├── panels/ # UI面板组件 (与Legacy共享)
26+ │ │ ├── dialogs/ # 对话框组件 (与Legacy共享)
27+ │ │ └── [共享代码文件...]
28+ │ └── pom.xml
29+ │
30+ ├── sync-shared.bat # Windows 同步脚本
31+ ├── sync-shared.sh # Linux/Mac 同步脚本
32+ └── SHARED_FILES.md # 共享文件文档
33+ ```
34+
35+ ## 双 API 架构
36+
37+ 本项目同时支持 Burp Suite 的两种 API:
38+
39+ | 模块 | API 类型 | Java 版本 | 兼容 Burp Suite |
40+ | ------| ----------| -----------| ----------------|
41+ | ` legacy-api ` | Legacy API | Java 11+ | 所有版本 |
42+ | ` montoya-api ` | Montoya API | Java 17+ | 2023.1+ |
43+
44+ ** 共享代码策略:**
45+ - 两个模块共享 90% 的代码(模型、工具类、UI组件)
46+ - 使用同步脚本 ` sync-shared.bat/sh ` 保持代码一致
47+ - 仅入口点和 API 特定代码独立维护
48+
49+ ## 同步脚本使用
50+
51+ 当修改 ` legacy-api ` 中的共享代码后,需要同步到 ` montoya-api ` :
52+
53+ ### Windows
54+ ``` batch
55+ cd src/burpEx
56+ sync-shared.bat
57+ ```
58+
59+ ### Linux/Mac
60+ ``` bash
61+ cd src/burpEx
62+ chmod +x sync-shared.sh
63+ ./sync-shared.sh
2564```
2665
66+ 详细说明请查看 [ SHARED_FILES.md] ( ./SHARED_FILES.md )
67+
2768## 插件功能
2869
2970### 核心功能
@@ -32,197 +73,122 @@ burpEx/
3273| ------| ------|
3374| ** 提交扫描任务** | 右键菜单发送 HTTP 请求到后端 |
3475| ** 默认配置管理** | 设置和保存默认扫描参数 |
35- | ** 常用配置管理** | 添加/编辑/删除常用扫描配置 |
76+ | ** 常用配置管理** | 添加/编辑/删除常用扫描配置 (SQLite存储) |
3677| ** 历史配置记录** | 查看历史扫描使用的配置 |
37- | ** 引导式编辑器** | 可视化配置 SQLMap 参数 |
78+ | ** 引导式编辑器** | 可视化配置 SQLMap 215个参数 |
3879| ** 配置选择** | 提交时可选择默认配置、常用配置或历史记录配置 |
3980| ** 活动日志** | 记录所有操作和发送结果 |
81+ | ** 请求过滤** | 自动过滤二进制内容请求 |
82+ | ** 请求去重** | 自动去重相同 URL 的请求 |
83+ | ** 注入点标记** | 手动标记注入点位置 |
84+ | ** 会话Header** | 提交临时会话Header |
85+ | ** Header规则** | 提交持久化Header规则 |
4086
4187> ** 注意** : 插件端仅负责发送请求,任务管理和结果查看请使用 Web 前端。
4288
4389### 右键菜单
4490
45- - ** Send to SQLMap WebUI** - 使用默认配置直接发送
46- - ** Send to SQLMap WebUI (选择配置)...** - 弹出配置选择对话框
91+ - ** Send to SQLMap WebUI** - 使用选中的配置直接发送
92+ - ** 标记注入点并扫描 (* )** - 标记注入点后发送
93+ - ** Send to SQLMap WebUI (配置扫描)...** - 弹出高级配置对话框
94+ - ** 提交会话Header** - 提交临时会话Header (单选时显示)
95+ - ** 提交Header规则** - 提交持久化Header规则 (单选时显示)
4796
4897### UI 标签页
4998
5099| 标签页 | 功能 |
51100| --------| ------|
52- | 服务器配置 | 设置后端 URL、测试连接状态 |
53- | 默认配置 | 设置 Level、Risk、DBMS、Technique、Batch 等默认参数 |
54- | 常用配置 | 管理常用配置列表(添加/编辑/删除),支持引导式编辑 |
55- | 历史配置 | 查看历史扫描使用的配置记录 |
56- | 活动日志 | 查看操作日志和发送历史 |
101+ | ** 后端配置 ** | 设置后端 URL 和连接状态 |
102+ | ** 默认配置** | 设置默认扫描参数 |
103+ | ** 常用配置** | 管理常用配置 (CRUD操作) |
104+ | ** 历史记录 ** | 查看历史使用过的配置 |
105+ | ** 活动日志** | 查看操作记录和发送结果 |
57106
58- ## 版本选择
107+ ## 构建说明
59108
60- | Burp Suite 版本 | 推荐插件 | Java 要求 |
61- | -----------------| ----------| -----------|
62- | 2023.1+ | montoya-api | Java 17+ |
63- | 较老版本 | legacy-api | Java 11+ |
109+ ### 环境要求
64110
65- ## 构建方式
111+ - ** Legacy API** : JDK 11+
112+ - ** Montoya API** : JDK 17+
113+ - Maven 3.6+
66114
67- ### Montoya API (推荐)
115+ ### 编译命令
68116
69117``` bash
70- cd montoya-api
118+ # 编译 Legacy API (兼容 Java 11)
119+ cd src/burpEx/legacy-api
71120mvn clean package -DskipTests
72- ```
73-
74- 生成文件: ` target/sqlmap-webui-burp-montoya-*.jar `
75121
76- ### Legacy API
77-
78- ``` bash
79- cd legacy-api
122+ # 编译 Montoya API (需要 Java 17+)
123+ cd src/burpEx/montoya-api
80124mvn clean package -DskipTests
81125```
82126
83- 生成文件: ` target/sqlmap-webui-burp-legacy-*-jar-with-dependencies.jar `
84-
85- ## 安装方式
86-
87- 1 . 打开 Burp Suite
88- 2 . 进入 ** Extender** → ** Extensions** 标签页
89- 3 . 点击 ** Add** 按钮
90- 4 . 选择对应版本的 JAR 文件
91- 5 . 点击 ** Next** 完成安装
92-
93- ## 使用方法
127+ ### 输出文件
94128
95- ### 1. 配置服务器
129+ - Legacy: ` target/sqlmap-webui-burp-legacy-1.8.16-jar-with-dependencies.jar `
130+ - Montoya: ` target/sqlmap-webui-burp-montoya-1.8.16.jar `
96131
97- 1 . 进入插件的「服务器配置」标签页
98- 2 . 设置后端 URL: ` http://localhost:8775 `
99- 3 . 点击「测试连接」验证连接状态
132+ ## 安装使用
100133
101- ### 2. 配置默认参数
134+ 1 . 编译生成 JAR 文件
135+ 2 . 打开 Burp Suite -> Extensions -> Add
136+ 3 . 选择编译好的 JAR 文件
137+ 4 . 确保 SQLMap WebUI 后端已启动(默认 http://localhost:8775)
102138
103- 在「默认配置」标签页设置:
104- - Level: 检测级别 (1-5)
105- - Risk: 风险级别 (1-3)
106- - DBMS: 数据库类型
107- - Technique: 注入技术
108- - Batch: 批处理模式
139+ ## 配置说明
109140
110- ### 3. 发送请求
141+ ### 后端 URL
111142
112- 1 . 在 Proxy/Repeater/Target 等位置选中请求
113- 2 . 右键选择 "Send to SQLMap WebUI"
114- 3 . 或选择 "Send to SQLMap WebUI (选择配置)..." 自定义参数
143+ 默认后端地址: ` http://localhost:8775 `
115144
116- ### 4. 查看结果
145+ 在 "后端配置" 标签页中修改后端 URL,插件会自动测试连接。
117146
118- 发送后在 Web 前端查看扫描任务和结果。
147+ ### 扫描配置
119148
120- ## 扫描参数说明
149+ 支持 215 个 SQLMap 参数,包括但不限于:
150+ - ** 目标选项** : URL、日志文件、批量文件等
151+ - ** 请求选项** : 方法、数据、Cookie、代理、认证等
152+ - ** 优化选项** : 线程、预测输出等
153+ - ** 注入选项** : 测试参数、DBMS、Tamper脚本等
154+ - ** 检测选项** : Level、Risk、字符串匹配等
155+ - ** 技术选项** : 注入技术、时间盲注等
156+ - ** 枚举选项** : Banner、表、列、数据导出等
157+ - ** 操作系统接管** : 命令执行、Shell等 (高危)
158+ - ** 文件系统** : 文件读写 (高危)
121159
122- ### 检测级别 (Level)
160+ ## 开发说明
123161
124- | 值 | 说明 |
125- | ----| ------|
126- | 1 | 默认,测试 GET/POST 参数 |
127- | 2 | 同时测试 Cookie |
128- | 3 | 同时测试 User-Agent/Referer |
129- | 4 | 更多测试向量 |
130- | 5 | 最全面的测试 |
131-
132- ### 风险级别 (Risk)
133-
134- | 值 | 说明 |
135- | ----| ------|
136- | 1 | 默认,安全测试 |
137- | 2 | 添加基于时间的盲注 |
138- | 3 | 添加基于 OR 的盲注(可能影响数据)|
139-
140- ### 注入技术代码 (Technique)
141-
142- | 代码 | 技术 |
143- | ------| ------|
144- | B | 布尔盲注 (Boolean-based blind) |
145- | E | 报错注入 (Error-based) |
146- | U | 联合查询注入 (Union query-based) |
147- | S | 堆叠查询 (Stacked queries) |
148- | T | 时间盲注 (Time-based blind) |
149- | Q | 内联查询 (Inline queries) |
150-
151- 默认: ` BEUSTQ ` (全部技术)
152-
153- ### 数据库类型 (DBMS)
154-
155- 支持: MySQL, PostgreSQL, Oracle, SQLite, Microsoft SQL Server, IBM DB2 等
156-
157- 留空则自动检测。
158-
159- ## 后端接口
160-
161- 插件需要后端提供以下接口:
162-
163- | 接口 | 方法 | 说明 |
164- | ------| ------| ------|
165- | ` /api/version ` | GET | 获取版本信息(用于测试连接) |
166- | ` /api/health ` | GET | 健康检查 |
167- | ` /burp/admin/scan ` | POST | 提交扫描任务 |
168-
169- ## 依赖项
170-
171- | 依赖 | 版本 | 用途 |
172- | ------| ------| ------|
173- | OkHttp | 4.12.0 | HTTP 客户端 |
174- | Gson | 2.10.1 | JSON 处理 |
175- | SLF4J | 2.0.9 | 日志门面 |
176- | Logback | 1.4.11 | 日志实现 |
177-
178- ## 开发指南
179-
180- ### 项目结构说明
181-
182- ```
183- src/main/java/com/sqlmapwebui/burp/
184- ├── SqlmapWebUIExtension.java # 插件入口,注册菜单和UI
185- ├── ui/
186- │ ├── MainPanel.java # 主面板(Tab容器)
187- │ ├── ServerConfigPanel.java # 服务器配置面板
188- │ ├── DefaultConfigPanel.java # 默认配置面板
189- │ ├── PresetConfigPanel.java # 常用配置面板
190- │ ├── HistoryConfigPanel.java # 历史配置面板
191- │ ├── GuidedParamEditorDialog.java # 引导式参数编辑器
192- │ └── ActivityLogPanel.java # 活动日志面板
193- ├── config/
194- │ ├── ConfigManager.java # 配置管理器
195- │ └── ScanConfig.java # 扫描配置模型
196- └── http/
197- └── ApiClient.java # API 客户端
198- ```
162+ ### 修改共享代码
199163
200- ### 添加新配置项
164+ 1 . 在 ` legacy-api ` 中修改文件(保持 Java 11 兼容性)
165+ 2 . 运行 ` sync-shared.bat ` 或 ` sync-shared.sh `
166+ 3 . 分别编译两个模块验证
201167
202- 1 . 在 ` ScanConfig ` 中添加字段
203- 2 . 在 ` DefaultConfigPanel ` 中添加 UI 控件
204- 3 . 在 ` ConfigManager ` 中添加持久化逻辑
168+ ### 添加新功能
205169
206- ### 调试方法
170+ - 如果是通用功能:在 ` legacy-api ` 中实现,然后同步
171+ - 如果是 API 特定:只在对应模块中实现
207172
208- 1 . 在 Burp Suite 中加载插件
209- 2 . 查看 Extender → Output 标签页的日志
210- 3 . 使用活动日志面板查看操作记录
173+ ## 注意事项
211174
212- ## 常见问题
175+ 1 . ** 同步方向** : 始终以 ` legacy-api ` 为源,` montoya-api ` 为目标
176+ 2 . ** 兼容性** : 确保共享代码兼容 Java 11
177+ 3 . ** 编译验证** : 每次同步后都应该编译验证
178+ 4 . ** 备份** : 同步脚本会自动创建备份
213179
214- ### Q: 插件加载失败?
215- A: 检查 Java 版本是否满足要求(Montoya 需要 Java 17+,Legacy 需要 Java 11+)
180+ ## 版本信息
216181
217- ### Q: 连接测试失败?
218- A: 检查后端服务是否运行,URL 是否正确(默认 http://localhost:8775)
182+ - ** 版本** : 1.8.16
183+ - ** 更新日期** : 2026-02-10
184+ - ** 兼容 SQLMap** : 1.9.11.3+
219185
220- ### Q: 发送请求后看不到任务?
221- A: 在 Web 前端查看任务列表,插件只负责发送,不显示任务
186+ ## 相关链接
222187
223- ### Q: 如何查看详细错误?
224- A: 查看 Burp Suite 的 Extender → Output 标签页
188+ - [ 共享文件说明] ( ./SHARED_FILES.md )
189+ - [ SQLMap 官方文档] ( https://sqlmap.org/ )
190+ - [ Burp Suite 扩展开发] ( https://portswigger.net/burp/documentation/desktop/extensions )
225191
226- ## 许可证
192+ ## License
227193
228194MIT License
0 commit comments