乐于分享
好东西不私藏

【Burp插件指南】用HaE+caA插件,让你的挖洞效率提升十倍

【Burp插件指南】用HaE+caA插件,让你的挖洞效率提升十倍

受限于本人水平,本文难免会存在疏漏。对于文中可能出现的错误、不严谨以及表达不清晰的地方,敬请各位师傅们私信我,感谢。

本文是Burp插件指南系列的开篇,也是安全工具百斩堂的开篇,本文将手把手带你入门HaEcaA这两款高效插件,从安装配置到联动实战,助你打造属于自己的高效burp。

1、HaE是什么

HaE (Highlighter and Extractor)是一款通过自定义正则表达式,对流经Burp的HTTP流量进行高亮标记和信息提取的插件。它的本质不是扫描漏洞,而是降噪和聚焦。在成千上万的请求中,用不同颜色帮你自动标记出可能有趣的流量,让你一眼看到重点。

HaE的地址https://github.com/gh0stkey/HaE/

2、HaE的配置

HaE的主界面上有三个功能点:

  1. 1. Rules(规则信息管理):管理匹配特定信息的正则表达式
  2. 2. Databoard(数据集合面板):对匹配到的信息进行集中查询和管理
  3. 3. Config(配置信息管理):配置文件和忽略后缀名的管理

2.1 HaE中的Rules(规则信息管理)

HaE的强大之处在于规则的自定义。官方规则是基础,但更强大的是构建自己的规则库

字段
含义
Name
规则名称,主要用于简短概括当前规则的作用。
F-Regex
规则正则,主要用于填写正则表达式。在HaE中所需提取匹配的内容需要用`(`、`)`将正则表达式进行包裹。
S-Regex
规则正则,作用及使用同F-Regex。S-Regex为二次正则,可以用于对F-Regex匹配的数据结果进行二次的匹配提取,如不需要的情况下可以留空。
Format
格式化输出,在NFA引擎的正则表达式中,我们可以通过{0}、{1}、{2}…的方式进行取分组格式化输出。默认情况下使用{0}即可。
Scope
规则作用域,主要用于表示当前规则作用于HTTP报文的哪个部分。支持请求、响应的行、头、体,以及完整的报文。
Engine
正则引擎,主要用于表示当前规则的正则表达式所使用的引擎。DFA引擎:对于文本串里的每一个字符只需扫描一次,速度快、特性少;NFA引擎:要翻来覆去标注字符、取消标注字符,速度慢,但是特性(如:分组、替换、分割)丰富。
Color
规则匹配颜色,主要用于表示当前规则匹配到对应HTTP报文时所需标记的高亮颜色。在HaE中具备颜色升级算法,当出现相同颜色时会自动向上升级一个颜色进行标记。
Sensitive
规则敏感性,主要用于表示当前规则对于大小写字母是否敏感,敏感(True)则严格按照大小写要求匹配,不敏感(False)则反之。

2.2 HaE中的Databoard(数据集合面板)

当 HaE 插件捕获到匹配正则表达式的数据包后,可以在 Databoard 数据集合面板里面直接查询捕获到的相关数据内容,可以直接搜索关于此域名的所有敏感内容

2.3 HaE中的Config(配置信息管理)

Path:配置文件的地址

Mode:是否开启全局颜色

Limit Size:可读文件大小

Scope: burp功能模块读取

Exclude suffix:过滤的内容类型

HaE 实战模拟场景:

场景一:快速识别敏感信息泄露

规则示例:配置高亮身份证、手机号、邮箱、内部IP地址、各类Token的规则。

效果展示:展示一个HTTP History里,包含敏感信息的请求被自动染上醒目颜色的截图,与普通请求形成鲜明对比。

场景一模拟:

好靶场平台来模拟真实环境

【插播一条】

填写我的邀请码能免费领高级会员594e34e27234474c

此环境地址:http://www.loveli.com.cn/see_bug_one?id=208

进入网站后,点击各个功能点,然后看burp中的history流量

可以看到HaE标记了有颜色的数据包,逐一查看是否有敏感数据

发现其中一个数据有id参数,并且返回了敏感数据

在intruder模块中跑完发现可遍历,泄露二要素信息,跑完之后,有信息的HaE直接进行了标记

点到为止,只展示HaE的功能,剩下的任意用户登录接管师傅们可以自己玩一下~

场景二:追踪特定技术栈和框架

规则示例:配置高亮ShiroFastjsonLog4j等组件特征的规则(例如响应头中的rememberMe=deleteMe)。

效果展示:截图展示,当目标站点使用Shiro框架时,相关请求立刻被高亮,提示测试人员有此框架。

场景二模拟:

好靶场平台来模拟真实环境

【插播一条】

填写我的邀请码能免费领高级会员594e34e27234474c

此环境地址:http://www.loveli.com.cn/see_bug_one?id=247

登录并且勾选上remember me,可以识别到有shiro框架的指纹信息

点到为止,只展示HaE的功能,剩下的反序列化漏洞(CVE-2016-4437)复现师傅们可以自己玩一下~

场景三:提取隐藏的API接口和参数

规则示例:利用其Linkfinder等规则,从JS文件或响应体中提取API路径、URL、隐藏参数等。

效果展示:截图展示HaE的markinfo页里,清晰地列出了从某个JS文件中提取出的所有URL,其中可能包含测试环境的接口。

场景三模拟:

好靶场平台来模拟真实环境

【插播一条】

填写我的邀请码能免费领高级会员594e34e27234474c

此环境地址:http://www.loveli.com.cn/see_bug_one?id=131

进入网站后,点击各个功能点,然后看burp中的history流量

可以看到HaE已经将数据包里的接口识别出来了

点到为止,只展示HaE的功能,剩下的**垂直越权任意添加用户**师傅们可以自己玩一下~

3、CaA是什么

CaA (Collector and Analyzer) 是一款自动收集HTTP流量中的参数、路径、文件名、参数值等信息,并进行频率统计Fuzzing测试的插件。它的本质是“构建攻击面画像”和“提供测试fuzzing参数”。它能告诉你这个应用“喜欢”用什么样的参数名、什么样的ID格式,并能利用这些信息去探测未知的接口和参数。

CaA地址:https://github.com/gh0stkey/CaA/

4、CaA的配置

CaA不需要配置什么,但是可以分为手工测试和自动化测试

  • • Generator(收集器):介绍它如何默默在后台收集流经Proxy的所有信息。
  • • Databoard(数据看板):截图展示如何在这里查询已收集到的数据,例如按Host查询所有参数、路径等。
  • • Analyzer/Fuzzer(分析/Fuzz模块):这是CaA的攻击模块,介绍它可以对参数、路径、文件进行Fuzzing测试。
  • • Generate(生成器):可以生成Payload,与Burp Intruder联动。

4.1 手工fuzz

可以在Reponse看到参数

放到intruder中跑

4.2 自动化fuzz

点击Send to Generator

发送到CaA中的Generator模块

点开数据集合面板,复制想要复制的参数

再在Generator中粘贴,办法因人而异,也可以在Repeater中添加,CaA玩法多样,看自己选择

Generate生成后,在Intruder模块中全选,然后在payloads的类型中选择Extension-generated,选择CaA  ayload Generated,接着取消下面的URL-encode,平常用不到,需要的时候再勾上,最后点击Start attack

可以看到这里有各个参数的自由组合,包含GET、POST请求方式,以及XML、JSON、上传表单形式等

CaA 实战模拟场景

场景一:构建目标专属字典

操作流程:正常浏览网站后,在CaA的Databoard中,导出收集到的所有参数名路径等,形成一个针对该站点的、高度相关的字典

效果展示:这个字典比任何通用字典都更加好,因为它们是目标应用实际在使用的,有针对性的字典。

场景一模拟:

好靶场平台来模拟真实环境

【插播一条】

填写我的邀请码能免费领高级会员594e34e27234474c

此环境地址:http://www.loveli.com.cn/see_bug_one?id=251

根据提示,此模拟靶场是以爆破/遍历来进行

进入网站后,点击各个功能点,然后看burp中的history流量

将CaA收集的参数生成字典

生成好后用Intruder模块遍历字典

遍历成功,进入后台

场景二:发现隐藏参数

操作流程:在一个已知接口(如/api/user/info)上,使用CaA收集到的参数字典进行参数Fuzzing,探测是否存在is_admindebug</fontshow_detail等隐藏参数。

效果展示:截图展示Fuzz的配置界面和发现隐藏参数后的差异化响应。

场景二模拟:

好靶场平台来模拟真实环境

【插播一条】

填写我的邀请码能免费领高级会员594e34e27234474c

此环境地址:http://www.loveli.com.cn/see_bug_one?id=252

登录模拟系统

使用测试账户user登录

已用CaA探测到有以下参数is_admindebugshow_detail,生成一个字典放到burp中跑,【再次声明,CaA的fuzzing操作程度是非常之高的,此场景仅仅为演示用,建议多尝试CaA的Generator

发现is_admin是隐藏函数,各位师傅可以举一反三