webfuzzer-hotpatch

Implements Yakit Web Fuzzer hot-patch hooks for request encryption, response decryption, retries, and fuzztag payloads.

10|1|Updated Jun 16, 2026
One-click install
npx skills add https://github.com/yaklang/yak-skills --skill webfuzzer-hotpatch-yaklang
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: webfuzzer-hotpatch
Source: https://github.com/yaklang/yak-skills/tree/main/skills/webfuzzer-hotpatch
Command: npx skills add https://github.com/yaklang/yak-skills --skill webfuzzer-hotpatch-yaklang

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Web applications often encrypt request bodies, sign parameters, or return encrypted responses, which blocks fuzzing and manual testing in Yakit Web Fuzzer. This Skill teaches how to write Yaklang hot-patch hooks so the Fuzzer works on plaintext while outbound traffic is automatically encrypted, signed, retried, and judged. ## Core Features & Use Cases - Request/Response Transformation: Use beforeRequest and afterRequest hooks to encrypt outbound requests, inject HMAC signatures, and decrypt responses so plaintext is visible in the Fuzzer. - Automated Decision Logic: Use retryHandler for status-code-driven retries, customFailureChecker to flag business-level failures behind HTTP 200, and mockHTTPRequest for offline debugging. - Dynamic Payloads & Correlation: Use {{yak(...)}} fuzztags to compute payloads like hashes, and mirrorHTTPFlow to extract tokens for multi-step sequences via {{params(name)}}. - Use Case: Facing a login API protected by AES-CBC encryption plus HMAC signature, combine beforeRequest and afterRequest so you write plaintext payloads in the Fuzzer while the wire traffic stays encrypted and signed. ## Quick Start Ask the AI to write a Web Fuzzer hot-patch script that encrypts the request body with AES-CBC in beforeRequest and decrypts the response in afterRequest, including a YAK_MAIN self-test.

Frequently Asked Questions about webfuzzer-hotpatch

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I decrypt encrypted responses in Yakit Web Fuzzer?▼

Define an afterRequest hook that receives the response, decrypts the body with codec functions like codec.AESCBCDecrypt, and returns the modified packet via poc.ReplaceHTTPPacketBody. The Fuzzer then displays plaintext instead of ciphertext.

How to add HMAC signatures to fuzzer requests automatically?▼

Use the beforeRequest hook to compute a signature with codec.HmacSha256 over the timestamp, nonce, and body, then inject it as a header with poc.ReplaceHTTPPacketHeader before returning the modified request.

What is the difference between MITM and Web Fuzzer hot-patch hooks?▼

Web Fuzzer hooks submit modifications through return values rather than forward/drop calls, and mirrorHTTPFlow has a different signature: (req, rsp, params) in Web Fuzzer versus (isHttps, url, req, rsp, body) in MITM.

Why does my hot-patch script crash under concurrent requests?▼

Crashes happen when hooks read and write shared mutable global variables, causing data races across goroutines. Keep top-level values as read-only constants, pass state through return values, or use sync.Map and mutexes for cross-request aggregation.

Can I test hot-patch scripts without a live target server?▼

Yes, use the mockHTTPRequest hook to supply local responses for offline debugging, and run scripts from the command line with yak where YAK_MAIN is true to execute built-in self-tests with mock requests and assertions.

How do I extract tokens across multi-step fuzzer requests?▼

Implement mirrorHTTPFlow to return a map of extracted values, then reference them in later sequence steps with {{params(name)}}. This supports token or CSRF correlation across chained Web Fuzzer requests.