文章来源:https://www.freebuf.com/articles/sectool/426498.html
引言
你,看过八小时数据包吗?你,看过动辄百万的文件吗?你,还在为js找不到敏感信息而苦恼吗?来吧孩子,来,看看这款红队、渗透工程师,都在用的利器-H ! A ! E ! 哈哈,开个玩笑。一贯的文章风格嘛~
这个工具能做什么?
1.帮助你快速的发现每一个数据包,记住,是每一个数据包,任何类型皆可,甚至是图片类型中的敏感信息
2.匹配的逻辑是靠正则表达式,意味着你可以无限的去扩展这个工具上限
3.极其容易的扩展性,也就是第二条所说的,只需要你会正则表达式,就可以扩展该工具的功能
工具下载地址:gh0stkey/HaE:HaE - 突出显示器和提取器,为高效操作赋能道德黑客。
看完能收获什么?
1.熟练,娴熟的掌握HAE这款工具的所有功能
2.如何利用HAE这款工具的功能在实战中获得成果
下载
https://github.com/gh0stkey/HaE
正式开始
知识点一:工具的功能面板介绍
下载后打开工具的第一个面板,就是正则匹配面板
右侧的功能就是顾名思义了,不多说,嘿嘿,总不能真要说吧?
主要就看添加后的这些功能到底是什么?
|
|
---|---|
|
|
|
|
|
|
|
{0} 、{1} 、{2} …的方式进行取分组格式化输出。默认情况下使用{0} 即可。 |
|
|
|
正则引擎,DFA引擎:速度快、但需要正则精度高,NFA引擎:速度慢,但时候编写简易的正则 |
|
|
|
|
这里面有需要注意的点就是S-Regex和Scope,而Engine和Format默认使用NFA与{0}即可。
先说S-Regex,二次匹配是一个什么意思呢?
比如说:
123456
234567
345678
这三个字段,假如我要搜索包含345的字符串,结果就是:123456、234567、345678
那么二次搜索就是,先限制一个345的条件 --> 123456、234567、345678 --> 再限制一个7的条件 -->
234567、345678。这就是二次匹配
那么Scope呢,什么是匹配的作用域?
就是匹配的范围,那么匹配的范围是什么呢?
any指的是全部
request指的是请求头,response body指的是请求正文,response line指的是请求行
response指的是响应头,如上
那么什么是请求体、请求正文、请求行呢?
弄明白这个,就可以看第二个面板了:
通过这个地方呢,就可以看到各种信息的大屏面板,让我们不用去翻历史记录。更方便查看。
需要介绍的地方还有二次搜索
比如IP地址,我们只想要包含192.168的,且包含0的。可以使用192.168,然后二次搜索0
还可以进行反向搜索,点击“设置”可以开启
那么这个面板的介绍就完成啦,下一个面板
Enable active http messagehandler关闭:
Enable active http messagehandler开启:
最后一个点啦~
总结总结:
知识点二:官方正则表达式解析
这里主要是分析各个官方正则表达式的解析了
先从最后一个开始解析~
我们对其进行分析,弄明白每个正则的具体场景。以及作用。
首先替换名称为单双引号中路径,更好理解,我们可以去这个网站测试一下正则
正则表达式在线测试| 菜鸟工具
从这里就能很直观的发现,只有测试出单双引号的正则。那么它的场景是什么呢?
可以看到就是我们所想的,收集某个站点的单双引号内的链接、详细路径。
这么信息更多的是帮助大家的进行一个fuzz的测试,将路径进行爆破、探测查看是否有泄露信息的功能。
首先改名为
那么这个正则去匹配的东西是什么呢?顾名思义:匹配后缀为.js.map的文件
那么它有什么用呢?
例如:通过 .js.map 提取 API 密钥
1.目标文件:https://xxxx.com/static/app.js.map
2.分析过程:
3.下载并解析 .js.map 文件,还原原始代码。
4.发现硬编码的 AWS S3 访问密钥:
javascript
const s3Config = {
accessKey: "AKIAXXXXXXXXXXXXXXXX",
secretKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYXXXXXXX"
};
5.利用密钥访问 S3 存储桶,窃取敏感数据。
其实它就是一个帮助你发现js.map的文件~,这个文件在开发中叫做:JavaScript 源映射文件(.js.map)本质上是为了调试目的而生成的代码映射文件,但在渗透测试中可能成为敏感信息泄露的“宝藏库”。例如:加密算法实现细节、ApiKey、内部系统说明(如 // 测试环境数据库地址:10.0.0.5)、调试用的临时凭证、未公开的 API 路径、开发环境的绝对路径等等。
这个的作用还真不好说。通过AI的进行一个查询,其中的是这个东西
但是没有遇到过,也没有对其进行过利用,所以就也不误导大家~暂时明白它能做什么即可。
这个呢用处就很明显,可以帮你识别一些非HTTP协议的东西,这些东西往往是一些敏感服务。
例如:
ssh://[email protected]:22
说明这个网站的服务器支持远程连接,且用户名为admin,那么我们只需要爆破密码即可。
这个东西有什么用呢?
它是属于一个VUE.js框架里都存在的东西
用于 匹配前端框架(如 Vue.js)中通过路由对象进行页面跳转的代码片段
然后我们再通过f12的控制台修改,可以控制前端框架跳转页面。如果没有做鉴权,我们就可以获取到越权漏洞。
请求行中的路径
你可以将这些行进行保存,然后去进行一个测试,或者去提取这些请求路径的特征,构造特定的字典,去进行爆破,参数爆破等等
主要是做为一个记录的作用,能记录你请求过那些路径。
这个就是主要记录http以及https协议的。
它会记录跳转链接,那么应该如何用呢?
在一些短信中的短链接
xxx.com/hU7qN4za
那么它一定会有一个跳转
我们可以通过这个跳转链接,收集一些信息~
从而造成未授权访问,或者信息泄露的漏洞。
具体怎么做呢?
爆破后两位,或者三位、四位都是可以的。
有时候就可以通过这些跳转链接的URL,获取到一些身份令牌的信息~
例如:
lch的字段。
这里我已经将所有的作用安装顺序改名
这一栏其实就是指纹,相对好介绍。
比如我们说的shiro指纹。
比如我们探测到了该指纹。
那么我们可以利用工具:推荐下载这里的天狐工具箱-社区版v1.2
然后我们就可以根据这些框架的Nday进行渗透测试。
这一栏呢Maybe Vulnerability,则要一个一个讲
这个呢就是会匹配java的反序列化,但具体需要java的版本够低。
这个匹配的就是一些敏感,常见的越权参数,遇到这些参数都可以对其进行更改
例如:
admin=1 --> admin=2 从管理员权限变成超级管理权限。
delete=10 可能是删除数据第十条,如果我们改为delete=1000,成功删除了第一千条。
这里主要匹配的是=http:// =https:// 的地方。这些字段往往就是SSRF与URL跳转漏洞存在的字段。
这个呢其实就是用来匹配上传点的一个正则
从某网站的上传点就可以印证,上传点type="file"这种特征。
那么这个匹配有什么用呢?
可以发现隐藏的上传点
例如:
我们可以自己写一个代码:
<!DOCTYPE html>
<html lang='"zh-CN">
<head>
<meta charset="UTF-8">
<title>文件上传示例</title>
<style>
/* 美化上传按钮 */
.upload-container {
margin: 20px;
padding: 20px;
border: 1px solid #ddd;
border-radius: 5px;
max-width: 500px;
}
.custom-upload {
display: inline-block;
padding: 10px 20px;
background: #4CAF50;
color: white;
cursor: pointer;
border-radius: 4px;
}
input[type="file"] {
display: none; /* 隐藏默认文件选择框 */
}
</style>
</head>
<body>
<div class="upload-container">
<h2>文件上传</h2>
<form action="/upload" method="post" enctype="multipart/form-data">
<label class="custom-upload">
选择文件
<input type="file" name="file" required>
</label>
<br><br>
<input type="submit" value="上传文件">
</form>
</div>
</body>
</html>
这样就有了一个最基础的上传点。那么如果我们将其隐藏呢?
可以看到,页面是没有上传点的,但是我们可以通过匹配file来发现这个隐藏的上传点,从而通过构造上传包进行上传。
你可以通过f12
直接将该类进行删除
这里就是匹配一些DDOS攻击容易存在的字段
例如:
size=100 响应时间是1秒
size=1000 响应时间是3秒
这就说明存在DDOS攻击
这一栏也不需要过多介绍了,就是对其进行一个匹配,顾名思义。
emmm这一栏也是一样的,不需要太多的理解,随拿随用即可。
知识点三:实战演示
光光这样玩,效率其实挺低的~
如果我们想快速的检测一个站点是否存在信息泄露,那么就可以使用爬虫加传入BP的方式,批量的测试~
工具地址:https://github.com/projectdiscovery/katana/releases
BP这里是监听了127.0.0.1:8080,所以我们只需要将代理流量传到127.0.0.1:8080,就可以顺利的传到BP了。
完成以后就可以通过HAE的大屏,直接收集各种信息了。
这更加适合我们打红队的适合,有多靶标,需要快速出洞的应用场景。
但是会发现单纯的爬虫结果其实并不好,不好在什么地方?
简单来说js爬虫工具是以探测为主的,也就是探测的到就爬,探测不到就不爬。
所以我们需要一个东西进行辅助:路径探测(接口爆破)
我这里推荐大家可以使用路径探测+爬虫+HAE
先使用kali自带的dirb
将这些探测路径放到1.txt中
然后再根据这些结果去进行一个爬虫,爬虫得到的js将会有比较大的一个提升。
看看实战效果~
你看这是不是就找到rsa的密钥了,当我们遇到响应包加密的时候,就可以用这个进行解密~
这里是不是就有信息泄露了~
使用起来很简单,但这仅仅是匹配的冰山一角,要会写正则表达式才是真正的高手。
这时候有人就问,主播主播,我不会写怎么办?
没事,有一个一学就会的格式:
需要匹配的字段:"(.*?)"
例如:
href:"(.*?)"
简单不简单。
举一反三,如何你想匹配的字符,放入AI --> 得到正则 --> 测试站测试 --> 直接使用
这就是为什么说HAE是一个极其容易扩展的工具,而且使用门槛也极其的低,上限却非常的高
知识点四:工具如何下载
这里主要照顾一下新手师傅
就成功了
总结
没啥好说的啦,祝大家天天开心,快快乐乐~
原文始发于微信公众号(神农Sec):渗透测试工具 | 信息泄露挖掘——利器HAE
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论