SuperAPI AI 工具集

webfuzzer-hotpatch

安全与审计

查看项目

更新于 10-16 01:27

技能介绍

用途:该技能面向 Yakit Web Fuzzer 的模块级热加载,作用于单个 Fuzzer Tab 的发包流程,典型用于内网加密对抗(请求加密、响应解密、签名注入)与自动化决策(重试、业务失败判定),让使用者在 Fuzzer 中直接面对明文 payload 进行测试。

主要能力与 Hook:beforeRequest(https, originReq, req) -> req 在请求出站前改写,可加密、签名、加头;afterRequest(https, originReq, req, originRsp, rsp) -> rsp 在响应回显前改写,可解密与格式化;retryHandler(https, retryCount, req, rsp, retry) 以 retry([newReq]) 决定重试;customFailureChecker(https, req, rsp, fail) 以 fail("原因") 自定义失败判定;mirrorHTTPFlow(req, rsp, params) -> params 提取参数供 {{params(name)}} 引用;mockHTTPRequest(https, url, req, mockResponse) 在无真实服务时用本地响应联调。注意 Web Fuzzer 的 mirrorHTTPFlow 签名与 MITM 版本不同,不可混用。

使用方式:以 hook 函数加 YAK_MAIN 自测的标准写法组织脚本,YAK_MAIN 为真时执行自测,在 Yakit 热加载窗口内仅注册 hook。请求侧可用 beforeRequest 整包加密签名,或用 {{yak(fn|...)}} fuzztag 仅处理单个字段;响应侧用 afterRequest 直接回显明文,或用 mirrorHTTPFlow 提取变量配合序列引用。动态密钥可通过 Web Fuzzer 序列先取密钥再引用。常用 API 包括 codec.AESCBCEncrypt、codec.AESCBCDecrypt、codec.EncodeBase64、codec.HmacSha256、poc.GetStatusCodeFromResponse、poc.ReplaceHTTPPacketBody 等,国密可换用 codec.Sm4* 与 codec.SM2*。

适用场景:前端加密对抗(AES-CBC 往返、加密加签名双重防护、RSA-OAEP 与 AES-GCM 混合加密)、协议层 200 但业务失败的爆破筛选、动态 payload 生成、多步请求提取 token 或 csrf 做关联测试。

限制与注意:热加载会被并发调用,顶层变量应作只读常量,禁止在 hook 内写共享可变全局,否则可能数据竞争甚至崩溃;跨请求聚合应使用返回值、sync.Map、锁或落库。retryHandler 需配合 Fuzzer 的重试配置(开启重试并指定失败状态码)。示例中的全局累加仅适用于单线程命令行自测。

验证:可用 yak 运行 examples 下示例,或通过 yak hotpatch-webfuzzer --script 与 --request、--fuzztag 参数验证 fuzztag 执行路径。