0x00 插件简介
HaE是基于 BurpSuite Java插件API 开发的请求高亮标记与信息提取的辅助型框架式插件,该插件可以通过自定义正则的方式匹配响应报文或请求报文,并对满足正则匹配的报文进行信息高亮与提取。
0x01 使用步骤
按照Burp正常步骤添加插件,配置文件初始化在/用户根目录/.config/HaE/路径下。
在如下菜单功能处点击线上更新,获得最新的规则库。
之后便发现proxy中的流量已经根据规则被着色。
使用过程中可以通过comment里面回显的字段来迅速判断泄露数据是否有价值。
通过databroad面板迅速查询某一个域名泄露的信息。
增加其他的规则。
0x02 打包编译
项目的源代码开源于git地址,可直接获得源码。
https://github.com/gh0stkey/HaE
项目使用gradle进行管理编译,clone项目后,直接导入IDEA,自动同步完成相应资源,可直接使用IDEA功能编译打包。
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具 ,用起来也很方便,主要还是IDEA真神器。
打包生成的文件位于项目build路径下,jar文件可直接导入burp使用。
0x03 代码结构
burp插件入口必然在BurpExtender类中,
界面绘制,在ui类中实现了各种界面的功能,包括配置文件的更新,菜单按钮的监听器动作。
private final MainUI main = new MainUI();
两个回调函数分别用于高亮和回显功能。
callbacks.registerHttpListener(BurpExtender.this);
callbacks.registerMessageEditorTabFactory(BurpExtender.this);
看下databoard的工作原理。
高亮阶段将数据保存在了hash表,也就是globalDataMap,databoard根据host直接提取显示。
最后来看一下规则匹配的高亮细节如何实现的,源头还是在 processHttpMessage函数。
重要的三个数据结构
GetColorKey gck = new GetColorKey();
UpgradeColor uc = new UpgradeColor();
ProcessMessage pm = new ProcessMessage();
重点步骤,细节先不深入。ExtractContent类解析规则库。
之后根据返回的数据判断情况更新到burp的history上。
原文始发于微信公众号(here404):HaE插件源码阅读记
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论