Wooyun Legacy
tanweai/wooyun-legacy
WooYun business logic vulnerability methodology — 22,132 real cases across 6 domains (authentication bypass, authorization bypass, payment tampering, information disclosure, logic flaws…
Runs a bug-bounty engagement through a script that tracks the current pass, builds a board of rows from recon and prints the next required action each turn.
$ npx skills add Encod3d-Sec/TORCH --skill bb-workflow -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Encod3d-Sec/TORCH bb-workflow --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Encod3d-Sec/TORCH.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/workflow/bb-workflow .claude/skills/bb-workflow && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "bb-workflow" agent skill from https://github.com/Encod3d-Sec/TORCH/tree/main/skills/workflow/bb-workflow into .claude/skills/bb-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bb-workflow", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Encod3d-Sec/TORCH/tree/main/skills/workflow/bb-workflowType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Encod3d-Sec/TORCH --skill bb-workflow -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Encod3d-Sec/TORCH bb-workflow --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Encod3d-Sec/TORCH.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/workflow/bb-workflow .agents/skills/bb-workflow && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bb-workflow" agent skill from https://github.com/Encod3d-Sec/TORCH/tree/main/skills/workflow/bb-workflow into .agents/skills/bb-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bb-workflow", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Encod3d-Sec/TORCH --skill bb-workflow -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Encod3d-Sec/TORCH bb-workflow --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Encod3d-Sec/TORCH.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/workflow/bb-workflow .cursor/skills/bb-workflow && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "bb-workflow" agent skill from https://github.com/Encod3d-Sec/TORCH/tree/main/skills/workflow/bb-workflow into .cursor/skills/bb-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bb-workflow", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Encod3d-Sec/TORCH.git --path skills/workflow/bb-workflow--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Encod3d-Sec/TORCH --skill bb-workflow -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Encod3d-Sec/TORCH bb-workflow --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Encod3d-Sec/TORCH.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/workflow/bb-workflow .gemini/skills/bb-workflow && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "bb-workflow" agent skill from https://github.com/Encod3d-Sec/TORCH/tree/main/skills/workflow/bb-workflow into .gemini/skills/bb-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bb-workflow", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Encod3d-Sec/TORCH bb-workflowInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Encod3d-Sec/TORCH --skill bb-workflow -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Encod3d-Sec/TORCH.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/workflow/bb-workflow .github/skills/bb-workflow && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "bb-workflow" agent skill from https://github.com/Encod3d-Sec/TORCH/tree/main/skills/workflow/bb-workflow into .github/skills/bb-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bb-workflow", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Encod3d-Sec/TORCH --skill bb-workflow -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Encod3d-Sec/TORCH bb-workflow --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Encod3d-Sec/TORCH.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/workflow/bb-workflow .opencode/skills/bb-workflow && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "bb-workflow" agent skill from https://github.com/Encod3d-Sec/TORCH/tree/main/skills/workflow/bb-workflow into .opencode/skills/bb-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bb-workflow", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
bb-workflowRuns a bug-bounty engagement through a script that tracks the current pass, builds a board of rows from recon and prints the next required action each turn.
The skill is built around scripts/campaign.py. The agent runs campaign.py next, does exactly what the printed action block lists, records the outcome with the note command and repeats, so the driver rather than free-form prose enforces the gates. Starting or resuming goes through init, which validates scope.md and the autonomy envelope and stops when scope.md is empty, so you have to fill it from the programme brief first.
Early passes cover OSINT and Wayback lookups, crawling, fingerprinting and CVE checks, all feeding state.md, and the agent must read JavaScript bundles and handlers end to end rather than only grep them. The board command then writes the killchain rows and next serves one at a time. For internet targets it drives a real browser through the chrome-devtools MCP to list network requests and capture rendered evidence, and uses a VM-side browser for hosts behind a VPN. It is designed to run without operator approvals, so it belongs only on programmes you are authorized to test.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d21b6c9. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3bashFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Bug Bounty Campaign Driver loads about 1.8k tokens when it runs. Until then it costs about 135 tokens; SKILL.md has 881 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Encod3d-Sec/TORCH at commit d21b6c9, republished under its MIT licence (© Encod3d-Sec). 881 words, ~1,811 tokens.
.claude/skills/bb-workflow/SKILL.md (or your agent's skills folder).The driver is the plan. You run one command, do exactly what it prints, record the result, repeat.
Nothing here is advisory: the gates are enforced by scripts/campaign.py, so follow its output
literally rather than improvising. This exists because prose routing failed - 22 Skill calls against
341 hand-rolled curls in the reference campaign; the board fixes that by making the mandate tool
output, fresh every turn.
python3 scripts/campaign.py next # prints ONE required-action block
# do EXACTLY what it lists, in order
python3 scripts/campaign.py note <row> --arsenal <slug> # after Skill(wiki-arsenal)
python3 scripts/campaign.py done <row> --poc <img> --kind req # | --dead R | --park Q | --find F
# repeatpython3 scripts/campaign.py init --type bb - validates scope.md + the autonomy envelope,
repairs engagement_type/schema, prints the Deadends size. If it exits 2, fix what it names
(an empty scope.md is the one thing it cannot invent - fill it from the programme brief first).state.md. Read every JS bundle and
handler end to end (Skill-less; volume-reduce first: source-map, drop vendor, beautify, read).
Grep never substitutes for the read.python3 scripts/campaign.py board - writes the killchain 4a rows. Refuses on an empty state.next serves one row, depth-first, one open row at a time.The programme's targets are internet-reachable, so drive them through a real browser, not just
curl - a modern site's real attack surface is only visible rendered. Use the chrome-devtools MCP:
navigate_page to each app, then list_network_requests - the XHR/fetch calls a
page makes reveal the API endpoints/routes a static crawl never sees (this is exactly the lead a
curl-only recon misses). take_snapshot for the rendered DOM; evaluate_script to read client
config / __NEXT_DATA__ / JS globals.evaluate_script / console); a rendered
take_screenshot of the exploited state is a valid web PoC (G3).Caveat: chrome-devtools drives a local browser, so it only reaches internet targets. For a
VPN-boxed host it cannot connect - use the VM-side browser (scripts/browser.sh / capture.sh web)
as the equivalent. pt-workflow / ctf-workflow default to the VM browser for that reason.
Manual login / MFA the agent cannot do headlessly (Smart-ID, Mobile-ID, a CAPTCHA) -> Skill(chrome-devtools-browser): a VISIBLE chromium on the VM desktop (scripts/browser-visible.sh) the operator logs into, driven + observed live via the chrome-devtools MCP - capture the authenticated session and the real /… API calls, then feed the hunt skills.
Skill(wiki-arsenal) fills it).Skill(hunt-*) actually fired.req (default), burp, or web (visual classes
only). A page render is not evidence of a bug.No approvals. Out-of-envelope work parks to decisions.md and the loop moves on - it never blocks
and never asks a question. A confirmed TIER1 is written up and chained but does not stop the run; the
campaign ends when the board is exhausted (two dry reframe rounds) or the request budget is spent.
Explicit per-role model assignment (the driver enforces the verifier gate; the rest is operating policy):
campaign.py loop, board/state, strategy, Burp/chrome-devtools, finding write-ups. This session.campaign.py verify <F> prints an Opus refuter prompt; dispatch ONE fresh Opus agent that reads the raw PoC, tries to REFUTE, and writes verdicts/<F>.json. done --find refuses unless that verdict exists, is refuted:false, and cites the finding's PoC (anti-rubber-stamp). Fails CLOSED.Skill(redteamlead) for direction at a fork or when a vector stalls.Skill(wiki-arsenal) deep, Skill(delegate) (mechanical exploit-run), Skill(ingest) recon-parse. Bounded, fully-specified, single-shot ONLY.The line that keeps quota safety: Haiku is allowed for a bounded single job, never for open-ended parallel hunting.
superpowers:brainstorming or superpowers:writing-plans mid-campaign, and keep
no parallel TaskCreate list. The board is the plan.## Model routing): Opus-1M drives the loop; bounded short tasks go to Haiku;
the mandatory Opus verifier gates every finding (done --find refuses without a passing
verdicts/<F>.json). Still no open-ended hunter fan-out (it exhausted the weekly quota last
time) - Haiku is only for single, fully-specified jobs.capture.sh req when it is not. Never block on Burp.scope.md, never from this skill./etc/pam.d/{sudo,su} + /etc/sudoers.d/* and linpeas output WHOLE -
a pam_ssh_agent_auth/pam_exec/NOPASSWD line is the tell a grep skips. See [[linux-privesc]].bash scripts/vm-bg.sh <eng> <win> '<tool>' (stages to
/dev/shm, runs in the stabilized shell, --read/--wait 120 the logfile); never retry a broken
tool pattern >2x - switch method or call Skill(redteamlead).When next prints the close-out chain, run it: Skill(triage) -> Skill(evidence) ->
Skill(report) -> Skill(learn).
Manual fallback, same gates by hand: read Approach.md, take the top open row for the current
asset, run its wiki lookup then its hunt skill, capture req evidence, mark it [x]; on exhaustion
one Deadends.md line and [!].
© Encod3d-Sec, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/workflow/bb-workflow of Encod3d-Sec/TORCH.
Open the folder on GitHubat commit d21b6c9
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in Encod3d-Sec/TORCH, which our catalogue first saw on October 7, 2026.
Bug Bounty Campaign Driver next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Bug Bounty Campaign Driver this skillEncod3d-Sec/TORCH | 329 | 1 repos | ~1.8k | Automated safety check: Pass | MIT | |
| Wooyun Legacytanweai/wooyun-legacy | 1.8k | — | ~1.9k | Automated safety check: Pass | Custom licence | |
| Client Request Signature Reversalawarexone/Agentic-Bug-Hunter | 5.3k | — | ~4.7k | Automated safety check: Pass | MIT | |
| Insecure Deserialization PlaybookPentesterFlow/agent | 1.4k | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Project Settings Cascadesamugit83/redamon | 2.9k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Security Auditoreigent-ai/eigent | 15k | — | ~1.8k | Automated safety check: Notes | Apache-2.0 |
tanweai/wooyun-legacy
WooYun business logic vulnerability methodology — 22,132 real cases across 6 domains (authentication bypass, authorization bypass, payment tampering, information disclosure, logic flaws…
awarexone/Agentic-Bug-Hunter
Recovers a client-side request signature or anti-bot token just far enough to replay blocked requests in bug bounty testing, starting from a captured packet.
PentesterFlow/agent
Fingerprints which language or framework produced a serialized blob, then helps build a working gadget chain to test for insecure deserialization.
samugit83/redamon
Changing or adding a project setting / default value in RedAmon.
eigent-ai/eigent
Audits source code, dependencies and config files for vulnerabilities and hardcoded secrets, using two bundled Python scanners and an OWASP Top 10 checklist.
usestrix/strix
Runs a Strix white-box security review that reads the source, then exploits what it finds in a sandbox so each reported issue has a proof-of-concept.
Encod3d-Sec/TORCH
Adaptive web fuzzing for pentests, bug bounty and CTF work: picks the smallest suitable SecLists wordlist per target surface and calibrates filters against soft-404 responses.
Encod3d-Sec/TORCH
IDOR / BOLA hunting - two-account methodology, identifier discovery and UUID leak chaining, the trusted-identifier test, GraphQL node and nested-object IDOR, cross-tenant escalation, write and…
Encod3d-Sec/TORCH
Checks that the bb, pt and ctf workflow driver is set up correctly on a machine: vault content, skill symlinks, hooks, imports and a live smoke test, with fixes for failures.
Encod3d-Sec/TORCH
Opens a visible Chromium window on a Kali VM so an operator can complete a manual login or CAPTCHA while the agent watches and acts through the chrome-devtools MCP.
Encod3d-Sec/TORCH
Runs a capture-the-flag box from first scan to root with a driver script that tracks progress and prints the next action each turn.
Encod3d-Sec/TORCH
Decides when a main pentesting agent should hand a fully-specified, mechanical exploit-compile or privilege-escalation step to a cheaper sub-agent, and how to specify that handoff safely.
Works with
Categories
Runs a bug-bounty engagement through a script that tracks the current pass, builds a board of rows from recon and prints the next required action each turn. py.py next, does exactly what the printed action block lists, records the outcome with the note command and repeats, so the driver rather than free-form prose enforces the gates.
Bug Bounty Campaign Driver fits situations like: starting a bug-bounty engagement from a programme scope file; resuming a half-finished campaign from the driver's saved state; working through a wildcard scope with one required step printed per turn; collecting browser-based evidence for a web finding.
Run `npx skills add Encod3d-Sec/TORCH --skill bb-workflow -a claude-code`. Or copy the skill folder (skills/workflow/bb-workflow in Encod3d-Sec/TORCH) into .claude/skills/bb-workflow in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Encod3d-Sec/TORCH --skill bb-workflow -a codex`. Or copy the skill folder (skills/workflow/bb-workflow in Encod3d-Sec/TORCH) into .agents/skills/bb-workflow in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Encod3d-Sec/TORCH --skill bb-workflow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bb-workflow, .gemini/skills/bb-workflow, .github/skills/bb-workflow and .opencode/skills/bb-workflow in your project.
Going by SKILL.md and its folder, Bug Bounty Campaign Driver needs the command-line tools its instructions call (python3 and bash). Our summary lists: Python 3 for scripts/campaign.py; A filled-in scope.md for the programme; The chrome-devtools MCP for browser observation.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Bug Bounty Campaign Driver is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Bug Bounty Campaign Driver: Wooyun Legacy (tanweai/wooyun-legacy, 1.8k stars), Client Request Signature Reversal (awarexone/Agentic-Bug-Hunter, 5.3k stars), Insecure Deserialization Playbook (PentesterFlow/agent, 1.4k stars) and Project Settings Cascade (samugit83/redamon, 2.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Encod3d-Sec (a GitHub user) maintains it in Encod3d-Sec/TORCH, which has 329 GitHub stars. The repository holds 35 skills in this directory. The repository was last updated on September 1, 2026.
Source: Encod3d-Sec/TORCH on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.