当前位置: 首页 > ds >正文

yaklang 中的各种 fuzztag 标签及其用法

yaklang 提供了丰富的 fuzztag 标签系统,用于在模糊测试中生成各种类型的测试数据。以下是常见的 fuzztag 标签分类和详细说明。

更多资料可参考官方文档:

https://www.yaklang.com/products/manual/expert-mode/Web%20Fuzzer/Fuzz-case/

https://yaklang.com/docs/newforyak/fuzztag/

https://www.yaklang.com/products/expert-mode/Web%20Fuzzer/Fuzz-tags/

数字生成类标签

int 标签

int 标签是最基础的数字生成标签,支持多种语法:

  • {{int(1-100)}} - 生成 1 到 100 的整数
  • {{int(0-9999|4)}} - 生成 0000-9999 的四位数字
  • {{int(1,2,3,4,5)}} - 生成指定的整数列表
  • {{int(1-10|4|2)}} - 生成 1-10 范围,填充为 4 位,步长为 2

别名:portportsintegeri

字符生成类标签

char 标签

char 标签用于生成字符范围:

  • {{char(a-z)}} - 生成小写字母 a 到 z
  • {{char(A-Z)}} - 生成大写字母 A 到 Z
  • {{char(0-9)}} - 生成数字字符 0 到 9

别名:cch

编码解码类标签

Base64 编码标签

  • {{base64enc(abc)}} - 进行 base64 编码,结果为 YWJj
  • 别名:base64encodebase64ebase64b64

URL 编码标签

  • {{urlescape(abc=)}} - URL 编码特殊字符,结果为 abc%3d
  • {{urlenc(abc)}} - URL 强制编码,结果为 %61%62%63
  • {{urldec(%61%62%63)}} - URL 解码,结果为 abc

双重 URL 编码

  • {{doubleurlenc(abc)}} - 双重 URL 编码,结果为 %2561%2562%2563
  • {{doubleurldec(%2561%2562%2563)}} - 双重 URL 解码

HTML 编码

  • {{htmlenc(abc)}} - HTML 实体编码
  • {{htmldec(abc)}} - HTML 实体解码

Unicode 编码

  • {{unicode:encode(abc)}} - Unicode 编码
  • {{unicode:decode(abc)}} - Unicode 解码
  • 别名:unicodeunicode:encunicode:dec

压缩编码类标签

Gzip 压缩

  • {{gzip:encode(abc)}} - Gzip 压缩编码
  • {{gzip:decode(data)}} - Gzip 解压解码
  • 别名:gzip:encgzipcgzipgzip:decgzipdecgzipd

Zlib 压缩

  • {{zlib:encode(abc)}} - Zlib 压缩编码
  • {{zlib:decode(data)}} - Zlib 解压解码
  • 别名:zlib:enczlibczlibzlib:deczlibdeczlibd

字符串处理类标签

大小写转换

  • {{lower(Abc)}} - 转换为小写,结果为 abc
  • {{upper(abc)}} - 转换为大写,结果为 ABC

随机大小写

  • {{randomupper(abc)}} - 随机大小写,如 aBc
  • 别名:random:upperrandom:lower

字符串重复

  • {{repeatstr(abc|3)}} - 重复字符串 3 次,结果为 abcabcabc
  • 别名:repeat:str

字符串截取

  • {{substr(abcdef|2)}} - 从位置 2 开始截取
  • {{substr(abcdef|2,3)}} - 从位置 2 开始截取 3 个字符

去除空格和引号

  • {{trim( abc )}} - 去除两边空格
  • {{unquote("abc")}} - 去除引号
  • {{quote(abc)}} - 添加引号

数组和列表类标签

数组生成

  • {{array(1,2,3)}} - 生成数组 [1,2,3]
  • {{array:auto(a,b,c)}} - 自动分割生成数组
  • 别名:listlist:auto

模糊测试专用标签

用户名模糊测试

  • {{fuzz:username(admin)}} - 根据给定用户名生成更多测试用户名
  • {{fuzz:username(admin|2)}} - 指定模糊等级为 2
  • 别名:fuzz:user

密码模糊测试

  • {{fuzz:password(password)}} - 根据给定密码生成更多测试密码
  • {{fuzz:password(password|3)}} - 指定模糊等级为 3
  • 别名:fuzz:pass

文件操作类标签

文件读取

  • {{file(/tmp/1.txt)}} - 读取文件内容
  • {{file(/tmp/1.txt|/tmp/2.txt)}} - 读取多个文件内容

按行读取文件

  • {{file:line(/tmp/test.txt)}} - 按行读取文件内容
  • 别名:filelinefile:lines

文件夹读取

  • {{file:dir(/tmp/test)}} - 读取文件夹中所有文件内容
  • 别名:filedir

插件调用类标签

Codec 插件调用

  • {{codec(name|params)}} - 调用 Yakit Codec 插件
  • {{codec:line(name|params)}} - 调用插件并按行解析结果

安全测试类标签

Java 序列化攻击载荷

  • {{yso:exec(whoami)}} - 生成 Java 反序列化命令执行载荷

JsonPath 操作

  • {{jsonpath({"key":"value"}|$.key)}} - 通过 JsonPath 查找值
  • {{jsonpath({"key":"value"}|$.key|newvalue)}} - 通过 JsonPath 替换值

随机生成类标签

随机字符串生成

根据代码中的模式,yaklang 还支持随机字符串生成:

  • {{randstr(10)}} - 生成长度为 10 的随机字符串
  • {{randstr(1,30)}} - 生成长度为 1-30 的随机字符串
  • {{randstr(1,30,10)}} - 生成 10 个长度为 1-30 的随机字符串

时间日期类标签

yaklang 还提供了丰富的时间日期相关的 fuzztag,用于生成各种时间格式的测试数据。

使用建议

  1. 组合使用:可以将多个 fuzztag 组合使用,如 {{base64enc({{int(1-100)}})}}
  2. 参数分隔:使用 | 分隔参数,使用 , 分隔列表项
  3. 别名使用:大多数标签都有简短的别名,可以提高编写效率
  4. 上下文相关:在 HTTP 请求中使用时,注意编码格式的兼容性

总结

这些 fuzztag 标签构成了 yaklang 强大的模糊测试能力。每个标签都经过精心设计,支持多种参数组合,能够满足各种安全测试场景的需求。通过合理使用这些 fuzztag,您可以快速生成大量有针对性的测试数据,提高安全测试的效率和覆盖率。

http://www.xdnf.cn/news/13018.html

相关文章:

  • 跟我学c++中级篇——多线程中的文件处理
  • Java网络编程:构建现代分布式应用的核心技术
  • day50 随机函数与广播机制
  • 基于Java Web的校园失物招领平台设计与实现
  • Redis——主从哨兵配置
  • ckeditor5的研究 (9):写一个自定义插件,包括自定义的toolbar图标、插入当前时间,并复用 CKEditor5 内置的 UI 组件
  • 2025年U盘数据恢复软件推荐:找回丢失文件的得力助手
  • 大数据赋能行业智能化升级:从数据价值到战略落地的全景透视
  • 网络渗透测试中的信息收集与网站目录扫描实战详解
  • Linux --进程控制
  • DHCP / DHCPv6 原理 / 报文解析 / 配置示例
  • Maven入门(够用)
  • Secs/Gem第九讲(基于secs4net项目的ChatGpt介绍)
  • 《光子技术成像技术》第四章 预习2025.6.8
  • 1. Web网络基础 - IP地址核心知识解析
  • 信号与传输介质
  • Linux 如何移动目录 (文件夹) (内含 Linux 重命名方法)
  • 【项目实训项目博客】用户使用手册
  • ES6 核心语法手册
  • C语言 学习 数组(一维数组,多维数组,字符数组,字符串) 2025年6月8日09:21:39
  • Σ∆ 数字滤波
  • Linux 用户层 和 内核层锁的实现
  • 嵌入式面试提纲
  • debian12拒绝海外ip连接
  • PyCharm和VS Code哪个更适合初学者
  • idea 启动jar程序并调试
  • 机器学习模型选择指南:从问题到解决方案
  • 华为开源自研AI框架昇思MindSpore应用案例:ICT实现图像修复
  • 前端现行架构浅析
  • 主流嵌入式Shell工具性能对比