ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

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

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-dropsburp-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.javasrc/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要监听代理流量关键词是proxy或listener。第 2 步在 API 文档的接口列表中搜索关键词。Burp 自带的 Extender API 文档左侧就列出了全部接口直接用文档搜索框过滤第 3 步回到 burp-api-drops 的 API 快速索引表反查。在 README.md 文件顶部的索引表中找到接口名对应的相关课程和示例代码直接打开对应 Lession 源码看实现比看抽象文档快得多。小技巧如果接口在索引表中没有课程说明它较冷门直接看接口上的 Javadoc 注释即可有课程标注的接口跟着示例代码走是最快的路径。三、40个Burp Extender接口分类速查表原索引表按字母序排列初学容易看花眼。这里按使用场景重新归类10 秒找到该用哪组接口分类常用接口典型场景 插件入口IBurpExtender、IBurpExtenderCallbacks插件必备入口几乎所有能力都从 callbacks 出发 数据包处理IExtensionHelpers、IHttpRequestResponse、IRequestInfo、IResponseInfo、IParameter、IHttpService解析、增删改 HTTP 请求/响应包 事件监听IHttpListener、IProxyListener、IScannerListener、IExtensionStateListener监听流量、扫描事件、插件启停 UI 扩展ITab、IContextMenuFactory、IMessageEditorTabFactory、IMenuItemHandler、ITextEditor自定义 Tab 页、右键菜单、消息编辑器页签 自定义扫描IScannerCheck、IScanIssue、IScannerInsertionPointProvider、IBurpCollaboratorClientContext编写漏洞扫描插件、与 Burp DNSlog 交互 Intruder 载荷IIntruderPayloadGeneratorFactory、IIntruderPayloadProcessor、IIntruderAttack自定义爆破 Payload 与处理器 会话处理ISessionHandlingAction、IInterceptedProxyMessage扫描过程中自动维护 Session Token 配置持久化ITempFile、callbacks.saveExtensionSetting()插件配置保存与读取Burp 插件的核心调用逻辑定位接口之前先理解一张图——【Burp 主程序】与【插件程序】的三步调用关系插件通过registerExtenderCallbacks注册监听器 → 主程序在组件产生流量时主动通知监听器 → 插件在回调函数如processHttpMessage中执行业务逻辑。这也是为什么需要被 Burp 主动调用的对象Listener、Factory、Check 等必须显式注册而所有 API 操作最终都围绕 Burp 的核心对象HTTP 数据包展开一张思维导图理清IHttpRequestResponse的结构四、课程章节与示例代码对照表索引表里相关课程一列指向的就是下面这套示例代码按章节顺序学习即可课程章节核心 API示例代码二、环境准备与 Hello WorldIBurpExtender、IBurpExtenderCallbackssrc/burp/Lession2.java四、学习思路和核心逻辑IHttpListenersrc/burp/Lession4.java五、HTTP 数据包的处理IHttpRequestResponse、IExtensionHelperssrc/burp/Lession5.java六、访问 Burp 关键数据IContextMenuFactory、IContextMenuInvocationsrc/burp/Lession6.java七、Session 处理ISessionHandlingActionsrc/burp/Lession7.java、src/burp/Lession7FromPortSwigger.java八、编辑器 TabIMessageEditorTab、IMessageEditorTabFactorysrc/burp/Lession8.java九、自定义 UI 界面ITab、IMessageEditorControllersrc/burp/Lession9.java、src/burp/GUI.java十、自定义扫描插件IScannerCheck、IScannerInsertionPointsrc/burp/Lession10.java、src/burp/Lession10CustomInsertpoint.java十一、自定义 Intruder PayloadsIIntruderPayloadGeneratorFactory、IIntruderPayloadProcessorsrc/burp/Lession11.java每个 Lession 都是一个可直接替换为 BurpExtender.java 运行的完整插件建议先看索引表定位接口 → 再读对应 Lession 源码效率最高。五、查API时最容易踩的3个坑✅坑 1别用已废弃的方法。索引表对应课程里的代码若出现getParameters()、getHeaders()直接作用于请求包的方法文档已标注Deprecated应改用IExtensionHelpers.analyzeRequest()/analyzeResponse()先解析成IRequestInfo/IResponseInfo再取信息见src/burp/Lession5.java。✅坑 2buildRequest()是替换不是追加。自定义扫描中insertionPoint.buildRequest(payload)会用 payload 替换原始值想在原值后追加需自己拼接getBaseValue() payload。✅坑 3500 状态码不触发主动扫描。响应状态为 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),仅供参考
返回列表