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