Skip to content

Commit 1d47505

Browse files
committed
feat(title): 增加请求标题提取功能及规则管理
- 新增标题提取相关依赖:加入json-path库支持JSON路径提取 - 在ConfigManager中添加标题配置项及其持久化保存加载逻辑 - 实现标题规则列表管理,包括默认规则、规则新增、更新、排序和删除功能 - 在BurpExtender中集成标题提取,生成窗口标题并传递给终端命令,启动时附带标题日志 - 新增标题提取工具类TitleExtractor和配置类TitleConfig支持多种提取方式 - 新增标题规则编辑对话框TitleRuleEditDialog,支持多种提取类型参数配置 - 新增标题提取测试对话框TitleTestDialog,可输入HTTP请求内容即时测试规则效果 - DirectExecuteConfigPanel中添加标题规则管理面板,支持UI操作规则集合 - 调整SqlmapApiClient默认后端地址为8775,保持接口一致性
1 parent ee29a44 commit 1d47505

30 files changed

Lines changed: 6273 additions & 112 deletions

src/burpEx/legacy-api/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,13 @@
7373
<artifactId>commons-cli</artifactId>
7474
<version>1.6.0</version>
7575
</dependency>
76+
77+
<!-- JsonPath for JSON path extraction in title configuration -->
78+
<dependency>
79+
<groupId>com.jayway.jsonpath</groupId>
80+
<artifactId>json-path</artifactId>
81+
<version>2.9.0</version>
82+
</dependency>
7683
</dependencies>
7784

7885
<build>

src/burpEx/legacy-api/src/main/java/com/sqlmapwebui/burp/BurpExtender.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import com.sqlmapwebui.burp.dialogs.*;
66
import com.sqlmapwebui.burp.util.CommandExecutor;
77
import com.sqlmapwebui.burp.util.SqlCommandBuilder;
8+
import com.sqlmapwebui.burp.util.TitleConfig;
9+
import com.sqlmapwebui.burp.util.TitleExtractor;
810

911
import javax.swing.*;
1012
import java.awt.*;
@@ -519,6 +521,10 @@ private void handleExecuteSqlMap(IHttpRequestResponse message) {
519521
return;
520522
}
521523

524+
// 提取窗口标题
525+
TitleConfig titleConfig = configManager.getTitleConfig();
526+
String windowTitle = TitleExtractor.extract(message, helpers, titleConfig);
527+
522528
// 生成HTTP请求字符串
523529
String httpRequest = buildHttpRequest(message);
524530

@@ -536,21 +542,24 @@ private void handleExecuteSqlMap(IHttpRequestResponse message) {
536542
buildAdditionalParams(configManager.getSelectedScanConfig())
537543
);
538544

539-
// 构建终端命令
545+
// 构建终端命令(带标题)
540546
String terminalCommand = SqlCommandBuilder.buildTerminalCommand(
541547
sqlmapCommand,
542548
configManager.getDirectTerminalType(),
543-
configManager.isDirectKeepTerminal()
549+
configManager.isDirectKeepTerminal(),
550+
windowTitle
544551
);
545552

546553
uiTab.appendLog("[+] 正在启动SQLMap扫描...");
554+
uiTab.appendLog(" 窗口标题: " + windowTitle);
547555
uiTab.appendLog(" 请求文件: " + requestFilePath);
548556

549557
// 执行命令
550558
CommandExecutor.ExecutionResult result = CommandExecutor.executeInTerminal(
551559
sqlmapCommand,
552560
configManager.getDirectTerminalType(),
553-
configManager.isDirectKeepTerminal()
561+
configManager.isDirectKeepTerminal(),
562+
windowTitle
554563
);
555564

556565
if (result.isSuccess()) {

0 commit comments

Comments
 (0)