对 JAVA 的了解仅限于基础语法,如何傻瓜式地使用 JAVA 编写一个 Burp 插件,并带 GUI 界面?新建项目
环境:IntelliJ IDEA、JDK 1.8
在 BurpSuite 中引用插件需要以 jar 格式才行首先打开 File->Project Structure,项目结构设置
需要注意的是,由于此时我们所编写的 BurpExtender 类为空,所以无法导入到 Burp 中
首先为了能让插件导入到 Burp 中不报错,我们首先得让 BurpExtender 类实现 IBurpExtender 接口,并初始化一下,输出一点东西
Burp Suite 使用此接口将一组回调方法传递给扩展,扩展可以使用这些方法在 Burp 中执行各种操作。可能不是很好理解,简单来说就是该类提供了很多方法,用来告诉BURP应该在什么时候干什么事的常量
只列举常用方法讲解printError
还有很多类似的register方法saveBuffersToTempFiles
该接口包含许多辅助方法,扩展可以使用这些方法来协助 Burp 扩展出现的各种常见任务analyzeRequest
这里有一个坑,第一个跟第二个得到的对象存在一点区别analyzeResponse
该类表示一条被Proxy模块拦截的请求getClientIpAddress
此接口用来获取&更新请求响应setHighlight
HTTP请求对象getMethod
HTTP响应对象getStatusCode
用于获取请求参数的详情,Key和Value等。This interface is used to hold details about an HTTP request parameter,由官方文档可以看出来,其并未考虑目前前后端分离网站的情况,未提供获取响应中的参数,因此只能直接写获取响应参数的方法getName
Proxy 消息监听类。使用IBurpExtenderCallbacks.registerProxyListener()方法注册该监听器后,便可监听所有流经Proxy的请求与响应
图片是网上找的,没太多时间重新搭环境
百度主站并没有shrio哈,此处是为了方便插件测试的时候所以判断是不是有 BDSVRTM 这个cookieIHttpListener
HTTP 消息监听类。使用IBurpExtenderCallbacks.registerHTTPListener()方法注册该监听器后,便可监听所有请求与响应,包括Proxy、Repeater、Intruder等等所有的 made by any Burp tool 的流量请求响应会被
插件状态监听类。通过调用 IBurpExtenderCallbacks.registerExtensionStateListener() 来注册一个扩展状态监听器。 侦听器将收到扩展状态更改的通知。 注意:任何启动后台线程或打开系统资源(例如文件或数据库连接)的扩展都应该注册一个侦听器并在卸载扩展时终止线程/关闭资源。当插件被卸载时会调用如下方法:注意:退出BURP时也会调用哦
当 Burp 使用上下文菜单调用的详细信息调用扩展提供的 IContextMenuFactory 时,将使用此接口。 自定义上下文菜单工厂可以查询此接口以获取调用事件的详细信息,以确定应显示哪些菜单项。getToolFlag
注意:至于什么时候使用getSelectedMessages或getSelectedIssues,可根据getInvocationContext获取的结果加以判断IContextMenuFactory
注册右键菜单该类只有一个方法
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |