HaE插件源码阅读记
2023-1-16 11:47:25 Author: Pa55w0rd(查看原文) 阅读量:16 收藏

HaE是基于 BurpSuite Java插件API 开发的请求高亮标记与信息提取的辅助型框架式插件,该插件可以通过自定义正则的方式匹配响应报文或请求报文,并对满足正则匹配的报文进行信息高亮与提取。

按照Burp正常步骤添加插件,配置文件初始化在/用户根目录/.config/HaE/路径下。

在如下菜单功能处点击线上更新,获得最新的规则库。

之后便发现proxy中的流量已经根据规则被着色。

使用过程中可以通过comment里面回显的字段来迅速判断泄露数据是否有价值。

通过databroad面板迅速查询某一个域名泄露的信息。

增加其他的规则。

项目的源代码开源于git地址,可直接获得源码。

https://github.com/gh0stkey/HaE

项目使用gradle进行管理编译,clone项目后,直接导入IDEA,自动同步完成相应资源,可直接使用IDEA功能编译打包。

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具 ,用起来也很方便,主要还是IDEA真神器。

打包生成的文件位于项目build路径下,jar文件可直接导入burp使用。

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上。


文章来源: http://mp.weixin.qq.com/s?__biz=MzU4MTc5NjU4Ng==&mid=2247483940&idx=1&sn=22808216b897f0a5bc44d064f3545977&chksm=fd4355a1ca34dcb77e3035b96119628071ce65fe5a6cdcc61113bff9c8645cc3ab3d99c3f9ea#rd
如有侵权请联系:admin#unsafe.sh