MCPcopy Index your code
hub / github.com/Chave0v0/API-Highlighter

github.com/Chave0v0/API-Highlighter @v2.1.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.1.2 ↗ · + Follow
86 symbols 171 edges 18 files 3 documented · 3% updated 16mo agov2.1.2 · 2025-02-19★ 43
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

API Highlighter

API Highlighter 是一个用于 BurpSuite 的插件,旨在帮助用户在拦截到的流量中高亮显示和处理特定的 API 请求。该插件最初用 Python 编写,现重构为 Java 版本。

项目背景

随着新版 API 的引入,许多原先的历史 API 即将废弃,为了提供更好的支持和兼容性,重构插件逐渐推上日程。

在最初的 Python 版本中,由于依赖包较多且配置复杂,导致用户在安装和使用过程中遇到了一定的困难。为了简化插件的安装过程、提高执行性能并减少依赖问题,我们决定开发 Java 版本的 API Highlighter。

Java 版本不仅更好地与 BurpSuite 环境集成,而且通过减少第三方依赖,降低了安装门槛。希望通过这一改进,为用户提供更为流畅和高效的使用体验。

原项目:https://github.com/Flechzao/API-Highlighter

功能

API 高亮

导入 API

导入格式如下:

  • \<Path>
  • 仅传入 Path 时,无论是否勾选 检查Method,默认匹配所有 HTTP 方法。
  • \<Path> 支持解析 PathVariable ,格式为 {任意字符}
  • \<Method>,\<Path>
  • MethodPath 之间使用 , 分隔。当勾选 检查Method 时,当前 Path 仅匹配指定 HTTP 方法。
  • \<Path> 支持解析 PathVariable ,格式为 {任意字符}
  • xxxxx
  • 传入任意字符进行匹配,通常用于模糊匹配。

image-20250131152949132

image-20250131153024127

选择匹配模式

不同匹配模式仅针对 Path。

精确匹配

选择精确匹配模式时,不支持 启用URL编码检查完整数据包

精确匹配仅匹配 API,不匹配 GET 请求参数,且需要 API 完全匹配。

导入如下内容。

image-20250131153251402

此时可匹配接口 /user/register/user/login/user/chave/info

但无法匹配 /test/user/login/test/user/loginabc/user/chave/infomation/test/user/chave/info 以及 参数中的xxx

image-20250131143303914

半模糊匹配

选择半模糊匹配模式时,不支持 启用URL编码检查完整数据包

半模糊匹配仅匹配 API,不匹配 GET 请求参数,但支持匹配不完全相同 API。

导入如下内容。

image-20250131153522783

此时可匹配接口 /user/login/user/register/user/chave/info/test/user/login/test/test/user/chave/info/abc

但无法匹配 /user/loginabc/user/chave/infomation/xxx/testxxx 以及 参数中的xxx

image-20250131143734141

模糊匹配

选择模糊匹配模式时,支持 启用URL编码检查完整数据包

模糊匹配在默认情况下,匹配 Path + 参数

导入如下内容。

image-20250131153624442

解析 PathVariable

切换到模糊匹配模式时,会弹出窗口,选择是否解析 PathVariable。选择 则解析,选择 则不解析。

当解析 PathVariable 时,此时可匹配接口 /test/user/abc/infomation 与参数 /test/user/abc/infoamtion/test/user/{name}/infomation

image-20250131151601732

当选择不解析 PathVariable 时,此时无法匹配接口 /test/user/abc/infoamtion 与参数 /test/user/abc/infoamtion,仅可匹配参数 /test/user/{name}/infomation

image-20250131151831909

启用 URL 编码

当未勾选 启用URL解码 时,此时无法匹配参数中经过 URL 编码的 a b c d e f g

image-20250131153719159

image-20250131152224779

勾选 启用URL解码,此时会对 request 进行 URL 解码,此时可匹配参数中经过 URL 编码的 a b c d e f g

image-20250131153838072

image-20250131153912482

检查完整数据包

当未勾选 检查完整数据包 时,此时仅检查请求 Path + 参数,未检查数据包中其他内容。

此时无法匹配请求体中的 a b c d e f gxxx

image-20250131155246057

勾选 检查完整数据包时 时,此时将检查整个数据包,此时可匹配 a b c d e f gxxx

image-20250131155558419

image-20250131155745214

该功能可与 启用URL解码 同时开启,可匹配完整请求中被 URL 编码的数据。

image-20250131160031773

检查 Method

勾选 检查Method 后,需要 Method 与 Path 同时匹配才会高亮。

若 Method 为空,勾选 检查Method 依然匹配所有 HTTP 方法。

检查 history

点击 检查history 后,会根据当前配置情况重新检查 history 中所有记录,原高亮记录会被覆盖。

切换测试状态

选择一条或多条 API,点击 切换测试状态,可切换选中条目测试状态。

Statetrue 时,该条 API 不再进行匹配。

image-20250131201354108

image-20250131201535978

操作 API 列表

修改数据
  • 修改 Method
  • 仅支持修改为 GET、POST、PUT、DELETE、OPTIONS。
  • 修改 State
  • 仅支持修改为 true、false。
  • 修改 Path、Result、Note、Domain
  • 无限制
删除数据

选中一条或多条 API,按下退格键即可删除选中条目。

列表排序

暂不支持...

查找 API

快速查找
  • \<Path>:精确查找 Path,并选中。
  • \<Method>,\<Path>:精确查找 Method + Path,并选中。
  • *:选中全部条目。

image-20250131203231727

image-20250131203259330

条件查找

按条件信息查找,如 method=getpath=/serviceresult=xxxstate=true 等。

不支持多条件搜索,不支持模糊搜索。

image-20250131204156562

image-20250131204216952

image-20250131204256345

敏感信息检查

目前采用 HaE 部分敏感信息规则进行检查。

首次安装插件时,会在当前用户目录下创建配置文件夹。

image-20250203170903647

开启功能

开启敏感信息检查功能必须先导入 API,该功能仅对 API 列表中匹配的记录进行检查。

image-20250203214020393

导入 API 后,在 Sensitive Info 标签页勾选开启敏感信息检查。该勾选状态默认不勾选,状态不保存。

初次启用功能由于配置文件不存在,会询问是否使用默认规则,选择是即可自动创建规则文件。

image-20250203214446338

插件自带规则均来自 HaE 插件部分敏感信息规则。

image-20250203214514020

编辑规则

所有修改均同步本地配置文件。

添加规则

image-20250203230445654

image-20250203230544618

修改规则

image-20250203230640616

image-20250203230657728

image-20250203230720331

删除规则

支持选中多条规则同时删除。

image-20250203231321030

image-20250203231338677

切换规则启用状态

支持选中多条规则同时切换状态,true=启用false=未启用

image-20250203231607512

image-20250203231625954

功能效果

开启敏感信息检查后,当 API 列表中匹配到敏感信息时,history 中标记为 橙色,同时列出匹配到的字段信息。

image-20250204203345613

同时 API 列表中 Result 字段提示 存在敏感信息

image-20250203232232994

更新计划

  • HaE 规则敏感信息检查(v2.0.0 已完成)
  • API 未授权访问检查(v3.0.0 开发中)

Core symbols most depended-on inside this repo

equals
called by 18
src/main/java/com/chave/pojo/APIItem.java
flushAPIList
called by 7
src/main/java/com/chave/utils/Util.java
setHighlightColor
called by 6
src/main/java/com/chave/utils/Util.java
sensitiveInfoMatch
called by 6
src/main/java/com/chave/service/SensitiveInfoMatchService.java
getAPIMatchResult
called by 5
src/main/java/com/chave/utils/Util.java
toString
called by 4
src/main/java/burp/api/montoya/core/ToolType.java
operateRuleDialog
called by 4
src/main/java/com/chave/ui/SensitiveInfoMainUI.java
convertPathToRegex
called by 3
src/main/java/com/chave/utils/Util.java

Shape

Method 66
Class 18
Enum 2

Languages

Java100%

Modules by API surface

src/main/java/com/chave/utils/Util.java15 symbols
src/main/java/com/chave/editor/ResponseEditor.java12 symbols
src/main/java/com/chave/editor/RequestEditor.java12 symbols
src/main/java/com/chave/ui/HighlighterMainUI.java9 symbols
src/main/java/com/chave/ui/SensitiveInfoMainUI.java8 symbols
src/main/java/com/chave/service/APIMatchService.java5 symbols
src/main/java/com/chave/handler/APIHighLighterHandler.java4 symbols
src/main/java/burp/api/montoya/core/ToolType.java4 symbols
src/main/java/com/chave/ui/MainUI.java3 symbols
src/main/java/com/chave/service/SensitiveInfoMatchService.java3 symbols
src/main/java/com/chave/pojo/APIItem.java3 symbols
src/main/java/com/chave/Main.java2 symbols

For agents

$ claude mcp add API-Highlighter \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact