gabson0x/bountyforge/web2-vuln-classes
Claude Code and agent skill by gabson0x/bountyforge
- community
Checking that the SKILL.md file is still in the repository.
Complete reference for 28 web2 bug classes with root causes, detection patterns, bypass tables, exploit techniques, and real paid examples. Covers IDOR, auth bypass, XSS, SSRF (11 IP bypass techniques), SQLi, NoSQLi, business logic, race conditions, OAuth/OIDC, file upload (10 bypass techniques), GraphQL, LLM/AI (ASI01-ASI10 agentic framework), API misconfig (mass assignment, JWT attacks, prototype pollution, CORS), ATO taxonomy (9 paths), SSTI (Jinja2/Twig/Freemarker/ERB/Spring), subdomain takeover, cloud/infra misconfigs, HTTP smuggling (CL.TE/TE.CL/H2.CL), cache poisoning, MFA bypass (7 patterns), SAML attacks (XSW/comment injection/signature stripping), XXE, insecure deserialization, host header injection, custom header injection, clickjacking, open redirect (11 bypass techniques), WebSocket attacks, SSRF chaining, and business logic bypass. Use when hunting a specific vuln class or studying what makes bugs pay.
Install
npx vskill@latest install gabson0x/bountyforge/web2-vuln-classesSKILL.md
WEB2 BUG CLASSES — 28 Classes
Root cause, pattern, bypass table, chaining opportunity, real paid examples.
See also: [[Vuln Classes]], [[Trust Map]], [[A→B Chains]], [[Security Arsenal]]
Auth-required classes (🔐): the ones below need **at least one logged-insession** loaded into the hunt to be testable. Use `hunt.py --auth-file.private/T.jsonor--cookie/--bearer` flags — every recon/scan tool theninherits the headers automatically. For IDOR/BOLA/priv-esc, load **twosessions** (low- and high-priv) and diff. Seedocs/auth-sessions.md.🔐 IDOR · Broken Auth/Access Control · Mass Assignment · OAuth/OIDC · JWT ·GraphQL field-level auth · LLM/AI chatbot IDOR · MFA (rate-limit + responsemanipulation tests) · ATO chains · SSRF behind loginThe MFA workflow-skip and SAML signature-stripping probes intentionallystay unauthenticated even when a session is loaded — that's theattack premise.
1. IDOR — INSECURE DIRECT OBJECT REFERENCE 🔐
#1 most paid web2 class — 30% of all submissions that get paid.Needs two sessions (A=attacker, B=victim) — load both via--auth-fileand diff audit-logsession_idhashes to confirm cross-tenant access.
Root Cause
Variants
- V1: Numeric ID swap —
/api/user/123/profile→ change to 124 - V2: UUID swap — enumerate UUID via email invite or other endpoint
- V3: Indirect IDOR —
POST /api/export?report_id=456exports another user's report - V4: Parameter add —
?user_id=othermakes backend use it - V5: HTTP method swap — PUT protected, DELETE not
- V6: Old API version —
/v1/users/123lacks auth that/v2/has - V7: GraphQL node —
{ node(id: "base64(User:456)") { email } } - V8: WebSocket — WS sends
{"action":"get_history","userId":"client-generated-UUID"}
Testing Checklist
IDOR Chain Escalation
- IDOR + Read PII = Medium
- IDOR + Write (modify other's data) = High
- IDOR + Admin endpoint = Critical (privilege escalation)
- IDOR + Account takeover path = Critical
- IDOR + Chatbot reads other user's data = High
2. BROKEN AUTH / ACCESS CONTROL 🔐
#2 most paid class. The sibling function rule: if 9 endpoints have auth, the 10th that doesn't is your bug.Needs auth loaded — you're testing which sibling routes a logged-inuser can reach that shouldn't be reachable. Compare authed responsesagainst the same paths hit anonymously.
The Sibling Rule
Patterns
Real Paid Examples
- HackerOne TrustHub:
POST /graphqlwithTrustHubQuery— no auth, regular user reads all vendors (CVSS 8.7 High) - Vienna Chatbot: WebSocket
get_historyaccepts arbitrary UUID — no ownership check (P2)
3. XSS — CROSS-SITE SCRIPTING
Stored XSS (highest impact)
DOM XSS Sinks (grep for these)
XSS Bypass Techniques
XSS Chains (escalate to High/Critical)
- XSS + sensitive page (banking/admin) = High
- XSS + CSRF token theft = CSRF bypass on critical action
- XSS + service worker = persistent XSS across pages
- XSS + credential theft via fake login form = ATO
4. SSRF — SERVER-SIDE REQUEST FORGERY
Injection Points
SSRF Payloads (escalating impact)
SSRF IP Bypass Techniques (11 techniques)
| Technique | Example | Notes | |
|---|---|---|---|
| Decimal IP | http://2130706433 | 127.0.0.1 as decimal | |
| Octal IP | http://0177.0.0.1 | Octal 0177 = 127 | |
| Hex IP | http://0x7f.0x0.0x0.0x1 | Hex representation | |
| Short IP | http://127.1 | Abbreviated notation | |
| IPv6 | http://[::1] | Loopback in IPv6 | |
| IPv6 mapped | http://[::ffff:127.0.0.1] | IPv4-mapped IPv6 | |
| DNS rebinding | Attacker DNS → internal IP | First check = external, fetch = internal | |
| Redirect chain | External URL → 302 to internal | Vercel pattern — check each hop | |
| URL parser confusion | http://attacker.com#@internal | Parser inconsistency | |
| CNAME to internal | Attacker domain → internal hostname | DNS points inward | |
| Rare format | http://[::ffff:0x7f000001] | Mixed hex IPv6 |
SSRF Impact Chain
- DNS-only = Informational
- Internal service accessible = Medium
- Cloud metadata = High (key exposure)
- Cloud metadata + exfil keys = Critical
5. BUSINESS LOGIC
Transferred from web3's "incomplete code path" pattern.
Pattern 1: Fast Path Skips State Update
Pattern 2: Workflow Step Skip
Pattern 3: Negative / Zero Bypass
Pattern 4: Race Condition (TOCTOU)
6. RACE CONDITIONS
Classic Double-Spend
Testing
Race Targets
- Coupon/promo code redemption
- Gift card / credit spending
- Limited stock purchase
- Rate limit bypass (send before counter increments)
- Email verification token
7. SQL INJECTION
Detection
Grep for Vulnerable Code
8. OAUTH / OIDC BUGS
Missing PKCE (Coinbase pattern)
State Parameter Bypass (CSRF on OAuth)
Open Redirect Bypass Techniques (for OAuth chaining, 11 techniques)
| Technique | Example | Why it works | |
|---|---|---|---|
| @ symbol | https://legit.com@evil.com | Browser navigates to evil.com | |
| Subdomain abuse | https://legit.com.evil.com | evil.com controls subdomain | |
| Protocol tricks | javascript:alert(1) | XSS via redirect | |
| Double encoding | %252f%252fevil.com | Decodes to //evil.com | |
| Backslash | https://legit.com\@evil.com | Parsers normalize \ to / | |
| Protocol-relative | //evil.com | Uses current page's protocol | |
| Null byte | https://legit.com%00.evil.com | Some parsers truncate at null | |
| Unicode IDN | https://legіt.com (Cyrillic і) | Visually identical, different domain | |
| Data URL | data:text/html,<script>... | Direct payload | |
| Fragment abuse | https://legit.com#@evil.com | Inconsistent parsing | |
| Redirect + OAuth | target.com/callback?redirect_uri=.. | Redirect endpoint |
9. FILE UPLOAD
Content-Type Bypass
File Upload Bypass Techniques (10 techniques)
| Attack | How | Prevention | |
|---|---|---|---|
| Extension bypass | shell.php.jpg, shell.pHp, shell.php5 | Allowlist + extract final extension | |
| Null byte | shell.php%00.jpg | Sanitize null bytes | |
| Double extension | shell.jpg.php | Only allow single extension | |
| MIME spoof | Content-Type: image/jpeg with .php body | Validate magic bytes, not MIME header | |
| Magic bytes prefix | Prepend GIF89a; to PHP code | Parse whole file, not just header | |
| Polyglot | Valid as JPEG and PHP | Process as image lib, reject if invalid | |
| SVG JavaScript | <svg onload="..."> | Sanitize SVG or disallow entirely | |
| XXE in DOCX | Malicious XML in Office ZIP | Disable external entities | |
| ZIP slip | ../../../etc/passwd in archive | Validate extracted paths | |
| Filename injection | ; rm -rf / in filename | Sanitize + use UUID names |
Magic Bytes Reference
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/web2-vuln-classes/SKILL.md
Popularity
- Repository stars
- 431
- Repository forks
- 54
- 7-day trend score
- 30
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/gabson0x/bountyforge/web2-vuln-classes)