在 Fuzztag 被大家接受并广泛使用之后,一个老需求变得急迫了起来。
从 Web Fuzzer 刚投入使用 Fuzztag 还在内测时候,这类需求一直在 Todo List 中,随着 Fuzztag 重构以及正式的文档推出,数据提取与下载的需求变得愈发急迫。
“即使 fuzztag 能批量发包,处理数据仍然需要用户手动下载所有数据,并编写脚本”,当然这肯定是我们不希望看到的。
提取数据的功能其实非常实际,我们通过{{int(1-1000|4)}}可以遍历得到一定量的数据,可能是遍历用户,也可能是遍历订单号以获取特定数据。
通常情况下,我们要提取的数据存在于响应信息中的某些位置,这些位置在每个网站中都不一样,但是这些数据往往是我们的 “工作成果”。
当我们要确认漏洞影响时,一般需要编写脚本、提取数据。但是如果能实现一种非常方便地提取数据的规则生成,将会很快解决这个问题。
01
30秒学会提取爆破数据
02
提取数据详细步骤分解
生成前缀、后缀正则表达式以提取数据
如果要精确提取一个位置,我们可能并不能确定生成的内容是否在 html 里,所以 xpath 这类的技术其实并不能适应这种情况。
但是在大多数时候,我们选中数据的前缀后缀往往是“唯一”的。
所以要提取所有爆破数据中的 “选中数据”,简单地使用鼠标在编辑器中选中这部分数据即可。
Yakit 根据选中数据前后位置,提取出前后缀正则,根据前后缀正则在每一个类似请求中把数据提取出来。
也可以根据选中内容提取正则表达式
类似的方式,我们直接选中想要的数据之后,再点击【单正则提取】,就可以仅生成选中数据转化的正则:
提取数据:一键提取到右边文本框中
在点击右上角的提取数据后,可以在右边文本框中看到详细的提取内容,此时可以 【下载文件】 直接把提取到的数据作为txt 文本信息保存在本机,实现快速提取数据。
03
Q&A:如何生成正则?
通过选中位置计算出前后的数据,如果数据中包含与正则冲突的特殊字符,进行编码,使用regexp.Quote 函数 + 泛化规则进行特殊字符编码。
我们把
(
编码为(
避免和正则中的分组冲突;我们把
.
编码为.
避免全匹配符冲突;我们把
{
编码为{
避免正则中的重复标记冲突;...
除此之外,我们也会对捕获的多个数字组成的正则进行特殊化处理:例如日期 2022-10-31 被捕获后会变成 d{4}-d{2}-d{2}
换行一般会分为两种
rn
(CRLF)和n
(LF)我们通过,修改并放宽正则规则为r?n?
以达到最大兼容性规则,可以实现换行友好多行内容提取与适配。
当我们实现上述编码后,可以快速提取合适的正则进行数据提取与下载。
往期推荐
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...