news 2026/8/25 9:45:27

Burp Extender API快速索引:如何在burp-api-drops的40+个接口中10秒找到正确的API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Burp Extender API快速索引:如何在burp-api-drops的40+个接口中10秒找到正确的API

Burp Extender API快速索引:如何在burp-api-drops的40+个接口中10秒找到正确的API

【免费下载链接】burp-api-dropsburp插件开发指南项目地址: https://gitcode.com/gh_mirrors/bu/burp-api-drops

burp-api-drops 是一个 Burp Suite 插件开发教程项目,核心是一份覆盖 40 多个 Burp Extender 接口的API 快速索引表:把每个接口关联到对应的课程章节和示例代码,让你只需输入需求关键词,就能在 10 秒内定位到正确的 Burp API。

一、burp-api-drops 是什么?

一句话概括:Burp 插件开发指南 + Burp Extender API 速查手册

仓库结构非常清晰,找资料前建议先认识这三个位置:

位置内容
src/burp/12 个课程示例代码(Lession2.java~Lession11.java)及插件入口 BurpExtender.java
src/custom/加密/编码工具类(AES、MD5、Base64、Unicode 等),插件开发常用的"百宝箱"
pom.xmlMaven 工程配置,已内置burp-extender-api1.7.22 依赖,拿来即可编译

Burp 插件的本质就是扩展 Burp 功能:修改请求/响应包、添加自定义 Tab 界面、开发自定义扫描插件、访问 Proxy 历史记录等。加载方式主要有两种:从 BApp Store 加载安装,或加载外部插件文件。

📌 需要源码时可以克隆仓库:git clone https://gitcode.com/gh_mirrors/bu/burp-api-drops

二、10秒定位正确API的三步法

这是整个项目最实用的工作方法,记住它就能摆脱"翻 API 文档找半天"的窘境:

第 1 步:把需求转成一个关键词。比如"我要获取请求包里某个 header 的值",关键词就是header;"要监听代理流量",关键词是proxylistener

第 2 步:在 API 文档的接口列表中搜索关键词。Burp 自带的 Extender API 文档左侧就列出了全部接口,直接用文档搜索框过滤:

第 3 步:回到 burp-api-drops 的 API 快速索引表反查。在 README.md 文件顶部的索引表中,找到接口名对应的"相关课程"和"示例代码",直接打开对应 Lession 源码看实现,比看抽象文档快得多。

小技巧:如果接口在索引表中没有课程,说明它较冷门,直接看接口上的 Javadoc 注释即可;有课程标注的接口,跟着示例代码走是最快的路径。

三、40+个Burp Extender接口分类速查表

原索引表按字母序排列,初学容易看花眼。这里按使用场景重新归类,10 秒找到该用哪组接口:

分类常用接口典型场景
🚪 插件入口IBurpExtenderIBurpExtenderCallbacks插件必备入口,几乎所有能力都从 callbacks 出发
📦 数据包处理IExtensionHelpersIHttpRequestResponseIRequestInfoIResponseInfoIParameterIHttpService解析、增删改 HTTP 请求/响应包
👂 事件监听IHttpListenerIProxyListenerIScannerListenerIExtensionStateListener监听流量、扫描事件、插件启停
🎨 UI 扩展ITabIContextMenuFactoryIMessageEditorTabFactoryIMenuItemHandlerITextEditor自定义 Tab 页、右键菜单、消息编辑器页签
🔍 自定义扫描IScannerCheckIScanIssueIScannerInsertionPointProviderIBurpCollaboratorClientContext编写漏洞扫描插件、与 Burp DNSlog 交互
💥 Intruder 载荷IIntruderPayloadGeneratorFactoryIIntruderPayloadProcessorIIntruderAttack自定义爆破 Payload 与处理器
🔑 会话处理ISessionHandlingActionIInterceptedProxyMessage扫描过程中自动维护 Session Token
💾 配置持久化ITempFilecallbacks.saveExtensionSetting()插件配置保存与读取

Burp 插件的核心调用逻辑

定位接口之前,先理解一张图——【Burp 主程序】与【插件程序】的三步调用关系:插件通过registerExtenderCallbacks注册监听器 → 主程序在组件产生流量时主动通知监听器 → 插件在回调函数(如processHttpMessage)中执行业务逻辑。这也是为什么"需要被 Burp 主动调用的对象(Listener、Factory、Check 等)必须显式注册":

而所有 API 操作最终都围绕 Burp 的核心对象HTTP 数据包展开,一张思维导图理清IHttpRequestResponse的结构:

四、课程章节与示例代码对照表

索引表里"相关课程"一列指向的就是下面这套示例代码,按章节顺序学习即可:

课程章节核心 API示例代码
二、环境准备与 Hello WorldIBurpExtenderIBurpExtenderCallbackssrc/burp/Lession2.java
四、学习思路和核心逻辑IHttpListenersrc/burp/Lession4.java
五、HTTP 数据包的处理IHttpRequestResponseIExtensionHelperssrc/burp/Lession5.java
六、访问 Burp 关键数据IContextMenuFactoryIContextMenuInvocationsrc/burp/Lession6.java
七、Session 处理ISessionHandlingActionsrc/burp/Lession7.javasrc/burp/Lession7FromPortSwigger.java
八、编辑器 TabIMessageEditorTabIMessageEditorTabFactorysrc/burp/Lession8.java
九、自定义 UI 界面ITabIMessageEditorControllersrc/burp/Lession9.javasrc/burp/GUI.java
十、自定义扫描插件IScannerCheckIScannerInsertionPointsrc/burp/Lession10.javasrc/burp/Lession10CustomInsertpoint.java
十一、自定义 Intruder PayloadsIIntruderPayloadGeneratorFactoryIIntruderPayloadProcessorsrc/burp/Lession11.java

每个 Lession 都是一个可直接替换为 BurpExtender.java 运行的完整插件,建议"先看索引表定位接口 → 再读对应 Lession 源码",效率最高。

五、查API时最容易踩的3个坑

坑 1:别用已废弃的方法。索引表对应课程里的代码若出现getParameters()getHeaders()(直接作用于请求包的方法),文档已标注@Deprecated,应改用IExtensionHelpers.analyzeRequest()/analyzeResponse()先解析成IRequestInfo/IResponseInfo再取信息(见src/burp/Lession5.java)。

坑 2:buildRequest()是"替换"不是"追加"。自定义扫描中insertionPoint.buildRequest(payload)会用 payload 替换原始值;想在原值后追加需自己拼接getBaseValue() + payload

坑 3:500 状态码不触发主动扫描。响应状态为 500 时,Burp 默认不会调用doActiveScan(),写扫描插件时要考虑这种漏报情况;另外插件里千万不要用System.exit(0),否则会直接导致整个 Burp 退出。

六、验证与调试:确认你调对了API

找到了正确的 API 之后,验证效果离不开两个调试利器:

1. 用 Logger++ 查看修改后的数据包。在 Logger++ 的 Options 中勾选Extender,即可实时观察插件对流量做了什么修改:

2. 用 Java 断点动态调试。用 IDEA 加载工程,Burp 以远程调试参数启动即可下断点——这也是项目选择 Java 而非 Python 开发插件的三大理由之一(兼容性、可调试、可打包成独立 Jar)。


总结一下:打开 README.md 顶部的 API 快速索引表 → 按场景分类表锁定接口 → 在src/burp/下找到对应 Lession 看实现,三步走完,10 秒找到正确的 Burp API 并不夸张。祝开发顺利 🚀

【免费下载链接】burp-api-dropsburp插件开发指南项目地址: https://gitcode.com/gh_mirrors/bu/burp-api-drops

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/25 9:41:53

软件功能测试面试全攻略:100道高频题解析

1. 软件功能测试面试题的价值与定位对于刚毕业的应届生来说,软件功能测试岗位往往是进入IT行业的首选切入点。不同于性能测试、安全测试等需要特定技术积累的领域,功能测试更注重对软件质量保证基础理念的理解和基本测试技能的掌握。这100道面试题的设计…

作者头像 李华