- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BurpSuite扩展开发1-API与HelloWold-园长
原原文文地地址址:/papers/3962
0x00 简简介介
BurpSuite神器这些年非常的受大家欢迎,在国庆期间解了下Burp相关开 并写了这篇笔记。希望和大家分享一下JavaSwing和Burp插件相关开 。第一节仅简单的了
解下API相关,后面会带着大家利用Netbeans开 我们自己的扩展以及各种有趣的小工具。
0x01 怎怎么么学学??
第一个问题是我们应该怎么去写自己的Burp扩展?我们可以找一些现有的扩展学习下,或者参阅官方文档或者手册,其次才是google一下是否有相关的教程、文章
进行学习。
google搜索:burp suite api,找到官方的API相关说明。
1. /burp/extender/
2. /2 12/12/draft-new-extensibility-api.html
You can:
1. 执行和修改 HTTP 请求和响应
2. 访问运行时的数据,比如:代理日志、目标站map和扫描问题
3. 启动自己的action,如扫描和网站爬行
4. 自定义扫描检测和注册扫描问题
5. 提供自定义Intruder payloads和payload处理
6. 查询和更新Suite-wide的目标作用域
7. 查询和更新session处理cookie jar
8. 实现自定义session处理action
9. 添加自定义的标签(tabs)和上下文菜单项到Burp 用户界面
1 . 可使用自己的界面添加Burp的HTTP消息编辑器
11. 自定义Burp的HTTP消息编辑器处理Burp不支持的数据格式
12. 获取headers, parameters, cookies分析HTTP请求和响应
13. 读取或修改Burp配置设置
14. 保存或恢复Burp状态
0x02 学学习习API
API下载地址:/burp/extender/api/burp_extender_api.zip
下载API后新建Eclipse项目导入API文件:
不急于动手写代码,先看下官方的Demo:
下载第一个HelloWorld解压它并复制BurpExtender.java到我们的项目当中:
BurpExtender.java:
BurpExtender.java实现了IBurpExtender接口,而IBurpExtender仅定义了一个方法:registerExtenderCallbacks(注册扩展回调方法):
#!java
public interface IBurpExtender{
/**
* 这个方法将在扩展加载的时候.他将会注册一个
*<code>IBurpExtenderCallback </code> 接口实例,可通过扩展
* 实现各种调用
*@param回调一个
*<code>IBurpExtenderCallback </code>对象.
*/
void regi terExtenderCallback (IBurpExtenderCallback callback );
}
在确认代码无任何错误后选中项目并导出为jar,建议安装一个打jar包的插件:Build Fat Jar这样你就可以非常方便的把整个项目打成一个jar包了.
如果你和我一样从来都没有使用过BurpSuite,那么不妨先打开它把玩几分钟。在extender(扩展)标签当中看到了Burp的插件加载界面。
Add我们刚打好的jar包,加载到Burp扩展中去。
这个时候可以看到我们的插件已经成功运行了,在LoadBurpExtension中的output标签已经看到了Hello output(stdout.println("Hello output");)
Errors标签也输出了Hello errors()stderr.println("Hello errors");
对应的错误信息(throw new RuntimeException("Hello exceptions");)。
插件名(callbacks.setExtensionName("Hello world extension");),
以及提醒面板的信息Hello alerts(callbacks.issueAlert("Hello alerts");)。
获取到Burp混淆后的扩展加载类( 自定义类加载器):
文档评论(0)