基础概念
Fuzz Tag 使用双大括号 {{}} 包裹标签,标签可以嵌套使用。主要功能包括:
生成随机数据
进行编码/解码转换
处理文件内容
生成网络相关数据
调用插件功能
主要标签分类
1. 基础生成标签
{{array}} / {{list}}
生成数组,用 | 分隔元素
{{array(1|2|3)}} → [1,2,3]
{{int}} / {{port}}
生成整数或端口范围
{{int(1-5)}} → 1,2,3,4,5
{{int(1-5|4)}} → 0001,0002,0003,0004,0005 (4位填充)
{{randint}} / {{ri}}
生成随机整数
{{randint(10)}} → 0-10随机数
{{randint(1,50)}} → 1-50随机数
{{randint(1,50,10)}} → 生成10个1-50的随机数
{{randstr}} / {{rs}}
生成随机字符串
{{randstr(8)}} → 8位随机字符串
{{randstr(4,8)}} → 4-8位随机字符串
{{randstr(5,7,5)}} → 生成5个5-7位的随机字符串
{{char}} / {{c}}
生成字符序列
{{char(a-z)}} → a,b,c,...,x,y,z
{{rangechar}}
生成指定范围的字符
{{rangechar(20,7e)}} → 0x20-0x7e的字符
2. 编码/解码标签
Base64 相关
{{base64enc(abc)}} → YWJj
{{base64dec(YWJj)}} → abc
{{base64tohex(YWJj)}} → 616263
{{hextobase64(616263)}} → YWJj
URL 相关
{{urlenc(abc)}} → %61%62%63
{{urldec(%61%62%63)}} → abc
{{doubleurlenc(abc)}} → %2561%2562%2563
{{doubleurldec(%2561%2562%2563)}} → abc
HTML 相关
{{htmlenc(abc)}} → abc
{{htmldec(abc)}} → abc
{{htmlhexenc(abc)}} → abc
哈希相关
{{md5(abc)}} → 900150983cd24fb0d6963f7d28e17f72
{{sha1(abc)}} → a9993e364706816aba3e25717850c26c9cd0d89d
{{sha256(abc)}} → ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
3. 文件处理标签
{{file}}
读取文件内容
{{file(/tmp/1.txt)}} → 文件内容
{{file(/tmp/1.txt|/tmp/2.txt)}} → 多个文件内容
{{file:line}}
按行读取文件
{{file:line(/tmp/1.txt)}} → 文件每行作为数组元素
{{file:dir}}
读取目录下所有文件内容
{{file:dir(/tmp/test)}} → 目录下所有文件内容
4. 网络相关标签
{{net}} / {{host}}
解析网络地址
{{net(192.168.1.1/28,example.com)}} → 解析所有IP和域名
5. 特殊用途标签
{{payload}}
从数据库加载Payload
{{payload(pass_top25)}} → 加载内置密码字典
{{punctuation}} / {{punc}}
生成所有标点符号
{{punctuation}} → [< > ? , . / : " ; ' { } [ ] | \ _ + - = ) ( * & ^ % $ # @ ! `]
文件头生成
{{ico}} → 生成ICO文件头
{{png}} → 生成PNG文件头
{{jpeg}} → 生成JPEG文件头
{{gif}} → 生成GIF文件头
{{tiff}} → 生成TIFF文件头
6. 插件相关标签
{{yak}}
调用用户定义的Yak函数
{{yak(handle|params)}}
{{params}}
动态获取参数
{"key":"{{params(test)}}"}
{{codec}}
调用Codec模块插件
{{codec(test)}}
使用技巧
1.标签嵌套:可以嵌套使用标签,如 {{md5({{int(1-5)}})}}
2.独立渲染:相同标签会替换为相同值,使用不同别名实现独立渲染
{{int(1-5)}}{{int(1-5)}} → 11,22,33,44,55
3.批量生成:结合网络和端口标签批量生成测试目标
http://{{net(176.1.0.1/28)}}:{{port(8080)}}/admin.php
针对于渗透测试比较常用的标签
network为标签名 host,hosts,cidr,ip,net为别名,以此类推。
嵌套格式
{{外层标签({{内层标签(参数)}})}
注解:{{外层标签({{内层标签(参数)}})} 的执行逻辑 这个嵌套结构的核心是:内层标签先执行,其输出结果会作为外层标签的输入参数。就像数学中的复合函数 f(g(x)),先计算 g(x),再把结果传给 f()。
webfuzz中的fuzztag标签生成
我们不仅可以在codec模块查看fuzztag标签的结果,在webfuzz功能模块这里,也可以查看fuzztag标签结果,它支持智能嵌套标签,并且可以查看生成后的payload
同时payload标签加载字典时,支持tab键补全,有种敲命令行的感觉呀~