
背景
在 Web Fuzzer 中,我们实现 BurpSuite Intruder 的代替是使用一种名字叫 Fuzztag 的全新机制,这种机制在以前并没有出现在任何安全工具和产品中,因此它对于绝大多数人来说是 “船新” 的。
实际在使用中,Fuzztag 并没有给大家带来太多麻烦的学习成本,其简单的语法和快速交互解决了各种 “配置” 的过程。
但是因为早期版本 Fuzztag 的技术实现比较简单,纯正则编译+分阶段编码有很多的额外限制,造成了不必要的理解成本,我们在 v1.1.3-sp4 以后的版本中,对 Fuzztag 的底层机制进行了完全的重构,使用编译原理的技术实现定制的 Lexer 和 Parser,实现了一套可嵌套递归执行 fuzztag 表达式模版语言。
Yaklang Fuzztag 是什么?
这是一种可以把字符串进行一定规则渲染变形的模版表达式语言,这种语言标记以{ {开头,}}结尾,中间包含规则的具体名称和参数,执行的结果为 n 个原字符串的变形。
以 Antlr4 Grammar 风格的语法定义:
expr = data '{ {' identifier ( '(' expr ')' )? '}}'data

简单来说,如果我们想要生成
payload-1
payload-2
payload-3
payload-4
payload-5
那么,我们仅需要编写的 Fuzztag 表达式为 payload-{
{int(1-5)}}
从字面意思理解,我们这个表达式以 payload- 开头,遇到 {
{int(1-5)}} 我们按字面意思理解为,在这儿生成 1-5 这五个整数。因此,他的结果为 [1 2 3 4 5] 我们和 payload- 进行组合,可以得到结果为:
payload-1
payload-2
payload-3
payload-4
payload-5
五分钟学会 Fuzztag
快速开始:使用 Fuzztag 生成整数列表爆破
最简单的情况,如果我们要进行一个参数位置的 ID 遍历,一般来说,我们比如 url 为https://www.example.com

文章介绍了Yaklang中的Fuzztag,一种全新的、易于使用的模板表达式语言,用于生成和变形字符串。Fuzztag简化了WebFuzzer中的payload生成,支持整数遍历、字符串编码、字典应用和高级嵌套。Fuzztag在Yakit工具中不断发展,提升了自动化测试的效率和灵活性。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



