HaE插件源码阅读记

admin 2023年2月16日20:03:13评论61 views字数 1072阅读3分34秒阅读模式

0x00 插件简介

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

0x01 使用步骤

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


HaE插件源码阅读记


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


HaE插件源码阅读记


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


HaE插件源码阅读记


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


HaE插件源码阅读记


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


HaE插件源码阅读记


增加其他的规则。


HaE插件源码阅读记

0x02 打包编译

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

https://github.com/gh0stkey/HaE

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


HaE插件源码阅读记


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

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

0x03 代码结构

burp插件入口必然在BurpExtender类中,

界面绘制,在ui类中实现了各种界面的功能,包括配置文件的更新,菜单按钮的监听器动作。


HaE插件源码阅读记


private final MainUI main = new MainUI();


两个回调函数分别用于高亮和回显功能。


callbacks.registerHttpListener(BurpExtender.this);
callbacks.registerMessageEditorTabFactory(BurpExtender.this);


看下databoard的工作原理。


HaE插件源码阅读记


高亮阶段将数据保存在了hash表,也就是globalDataMap,databoard根据host直接提取显示。

最后来看一下规则匹配的高亮细节如何实现的,源头还是在 processHttpMessage函数。


重要的三个数据结构


GetColorKey gck = new GetColorKey();
UpgradeColor uc = new UpgradeColor();
ProcessMessage pm = new ProcessMessage();


重点步骤,细节先不深入。ExtractContent类解析规则库。


HaE插件源码阅读记

HaE插件源码阅读记


之后根据返回的数据判断情况更新到burp的history上。

原文始发于微信公众号(here404):HaE插件源码阅读记

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月16日20:03:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   HaE插件源码阅读记http://cn-sec.com/archives/1282615.html

发表评论

匿名网友 填写信息