如何自定义Unexpected information规则?开发者必看的扩展指南

如何自定义Unexpected information规则?开发者必看的扩展指南

如何自定义Unexpected information规则?开发者必看的扩展指南

【免费下载链接】Unexpected_informationUnexpected information 是用于标记请求包中的一些敏感信息、JS接口和一些特殊字段的BurpSuite 插件。项目地址: https://gitcode.com/gh_mirrors/un/Unexpected_information

Unexpected information 是用于标记请求包中的一些敏感信息、JS接口和一些特殊字段的BurpSuite 插件。通过自定义规则,开发者可以根据实际需求灵活扩展其信息识别能力,本文将详细介绍自定义规则的完整流程。

快速了解规则定义位置 📍

规则的核心定义位于项目的src/main/java/burp/Re.java文件中,该文件包含了所有敏感信息识别的正则表达式和处理逻辑。例如手机号、身份证、IP地址等默认规则都在此处定义和实现。

自定义规则的基本步骤 🔧

1. 识别现有规则结构

Re.java中,每个信息类型都对应一个独立的静态方法,例如:

  • 手机号识别:Phone(String str)方法(Re.java)
  • 身份证识别:IdCard(String str)方法(Re.java)
  • 特殊字段识别:Password(String str)方法(Re.java)

这些方法均遵循相同的模式:定义正则表达式 → 匹配内容 → 去重处理 → 返回结果。

2. 添加新的识别方法

要添加自定义规则,只需在Re.java中新增一个静态方法,以下是添加"银行卡号识别"的示例:

// 银行卡号匹配 public static String BankCard(String str){ ArrayList<String> cards = new ArrayList<>(); String is_bankcard = "\\b(?:\\d{16}|\\d{19})\\b"; // 16位或19位卡号 Matcher matcher = Pattern.compile(is_bankcard).matcher(str); while (matcher.find()){ cards.add(matcher.group()); } List<String> cards_rd = Re.removeDuplicate(cards); return StringUtils.strip(cards_rd.toString(),"[]"); }

3. 在UI中显示识别结果

修改BurpExtender.java中的setMessage方法,添加新规则的结果展示逻辑:

String bankcard = Re.BankCard(new String(content)); if (bankcard.length() != 0) { Text += "Exists bankcard information: " + bankcard + '\n' + '\n'; }

4. 编译与安装插件

完成代码修改后,使用项目根目录下的gradlew命令重新编译插件:

./gradlew build

编译成功后,在BurpSuite的Extender模块中加载生成的JAR文件,如图所示:

图:在BurpSuite中加载自定义规则后的Unexpected information插件

规则生效验证方法 ✅

安装自定义规则后,可以通过以下步骤验证效果:

  1. 发送包含目标信息的请求包
  2. 在BurpSuite的HTTP历史记录中选择请求
  3. 切换到"Unexpected information"标签页查看识别结果

例如,当请求包中包含手机号信息时,插件会自动标记并显示识别结果:

图:Unexpected information插件识别手机号信息的效果

高级规则优化技巧 💡

1. 正则表达式优化

  • 使用非捕获组(?:...)提高匹配效率
  • 添加边界符\b避免部分匹配(如防止"138001380001"被识别为手机号)
  • 针对复杂模式使用正则注释(?#comment)提高可读性

2. 性能优化建议

  • 对频繁使用的正则表达式进行预编译
  • 对大文件采用分段匹配策略
  • 使用removeDuplicate方法(Re.java)去除重复结果

3. 多规则组合应用

通过组合多个规则实现复杂场景识别,例如:

if (Re.Phone(str).length() > 0 && Re.Email(str).length() > 0) { // 同时包含手机号和邮箱时的特殊处理 }

常见问题解决 🚩

Q: 自定义规则不生效怎么办?

A: 检查以下几点:

  1. 方法是否添加到Re.java并正确引用
  2. 正则表达式是否存在语法错误
  3. BurpExtender.java中是否添加了结果展示逻辑
  4. 重新编译并确保加载的是最新JAR文件

Q: 如何识别JS接口中的特殊路径?

A: 可以参考Path(String str)方法(Re.java)的实现,通过正则提取URL路径:

图:插件识别JS接口路径的效果展示

总结

通过修改src/main/java/burp/Re.javasrc/main/java/burp/BurpExtender.java文件,开发者可以轻松扩展Unexpected information的信息识别能力。无论是添加新的敏感信息类型,还是优化现有正则表达式,自定义规则都能帮助你更精准地捕获请求包中的关键信息。赶快尝试定制属于你的规则库吧!

【免费下载链接】Unexpected_informationUnexpected information 是用于标记请求包中的一些敏感信息、JS接口和一些特殊字段的BurpSuite 插件。项目地址: https://gitcode.com/gh_mirrors/un/Unexpected_information

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考