热加载 Fuzz 可有可无,这怎么能说出来?

本文介绍了YakitWebFuzzer中如何使用Fuzztag实现热加载功能,包括参数加密、解密操作,以及在实际案例中劫持和处理登录数据包的过程。作者提供了Yak语言的相关资源链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图片

在上一篇介绍“超级牛”的 Web Fuzzer 时:

Repeater 和 Intruder 的国产化平替 Web Fuzzer

我们说:Yakit 自定义的 Fuzztag 是 Web  Fuzzer 的灵魂。

Yakit 可以使用各种各样的 Tag 来实现核心功能:

1、Fuzz 一个参数的证书范围我们常用 {{int(1-100)}}

2、为一个参数值增加一个随机字符串,我们使用 {{randstr(10,10)}}

3、针对某一个位置进行爆破,比如爆破目录等,我们通常使用 {{x(dictname)}}

图片

为了形象的、图文并茂的体现 Fuzztag,我找到技术阿勇,让他认真地帮我讲解了一遍。

因为都是Fuzzer,牛同学一不小心就把 Web Fuzzer 和热加载 Fuzzer 混为一谈了。

正在技术阿勇给我解答的同时,牛同学不小心听到他说......

图片

所以,热加载存在的意义究竟是什么呢 ?

图片

其实,热加载 Fuzz 是一段在 Web Fuzzer 执行时运行的特定代码,它可以修改请求和响应包,让用户可以自由的控制请求过程。

通过 {{yak}} 标签告诉引擎这是一个 Yak HotPatch 标签,作用是调用热加载代码中的funcname 的函数:

{{yak(funcname)}}

改标签需要配合热加载代码使用。

代码示例:functionname = func() {   publicKey = "xxx"    iv = randstr(12)    aesKey = randstr(16)    encData = codec.AESGCMEncrypt(aesKey, "aaa", iv)~    encIv = codec.RSAEncryptWithOAEP(publicKey, iv)~    encAesKey = codec.RSAEncryptWithOAEP(publicKey, aesKey)~    return     json.dumps({"data":codec.EncodeBase64(encData),"encryptedIV":codec.EncodeBase64(encIv),"encryptedKey":codec.EncodeBase64(encAesKey),"iv":iv})}

如果 funcname 函数需要传递参数的话,调用方式如下:

{{yak(funcname|param)}}

多个参数调用方式:

{{yak(funcname|param1|param2)}}

实用案例

热加载 Fuzz 代码实现加解密

图片

01

劫持某后台登录数据包发现account为明文password 加密且含有一个token签名。

图片

02

检索前端源代码,发现两个参数,一个参数t1,一个参数s1。t1参数为token值 s1参数目前还未知。

图片

03

其次全局检索s1参数,通过分析这串JS代码发现采用了CryptoJS加密库,CryptoJS加密库用来实现AES加密,s1就是加密密钥。

id="t1" value="58ab45522ab247e7ba6c58e3cca8102f
id="s1" value="sdrfedwsdjujnsde

图片

04

热加载编写加密函数 首先获取token。

rsp,err = http.Get("http://120.0.0.1:2362/login")die(err)header,body= poc.Split(http.dump(rsp)[0])regexp = `t1[^>]+value="([^"]+)"`value = re.FindSubmatch(body,regexp)[1]dump(value)

图片

05

但是测试网站发现,验证码和token 使用后并不销毁,热加载代码:

handle = func(data) {key = "sdrfedwsdjujnsde"data = codec.PKCS7Padding(data)res = codec.AESECBEncrypt(key, data,nil)~return codec.EncodeBase64(res)}

图片

06

调试执行,加密成功。

图片

07

点击复制。

图片

08

插入需要fuzz的参数处,如下:

图片

Yak官方资源

Yak 语言官方教程:
https://yaklang.com/docs/intro/
Yakit 视频教程:
https://space.bilibili.com/437503777
Github下载地址:
https://github.com/yaklang/yakit
Yakit官网下载地址:
https://yaklang.com/
Yakit安装文档:
https://yaklang.com/products/download_and_install
Yakit使用文档:
https://yaklang.com/products/intro/
常见问题速查:
https://yaklang.com/products/FAQ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值