hunt-auth-bypass
The hunt-auth-bypass skill identifies authentication bypass vulnerabilities across SSO, SAML, OAuth, JWT, and XMLRPC implementations by applying patterns from 12 documented bug bounty cases including signature stripping, parser differentials, token confusion, and algorithm confusion attacks. Use this skill when hunting authentication weaknesses in enterprise SaaS platforms, admin panels, partner portals, WordPress plugins, and federated identity systems where auth flaws typically command high bounty payouts.
git clone --depth 1 https://github.com/elementalsouls/Claude-BugHunter /tmp/hunt-auth-bypass && cp -r /tmp/hunt-auth-bypass/skills/hunt-auth-bypass ~/.claude/skills/hunt-auth-bypassSKILL.md
## Crown Jewel Targets Auth bypass is consistently one of the highest-paying vulnerability classes in bug bounty because it directly violates the most fundamental security control. High-value targets include: - **SSO/SAML implementations** at enterprise SaaS companies (Slack, Okta, OneLogin integrations) — payouts regularly in the $5K–$25K+ range - **Admin panels and partner/internal portals** — subdomain-separated admin surfaces like `partners.shopify.com`, `admin.company.com` - **Third-party auth plugin integrations** — WordPress plugins (OneLogin, WP-SAML-Auth), Drupal SSO modules, any CMS with pluggable auth - **XMLRPC endpoints** on WordPress — often forgotten, bypasses standard WP auth flows entirely - **OAuth callback flows** — state parameter mishandling, redirect_uri mismatches - **API authentication layers** — especially where auth was bolted on after the fact **Asset priority:** Targets with federated identity (SAML, OAuth, OIDC) connected to large user populations. Partner/reseller portals are particularly juicy because they often have elevated permissions and less security scrutiny than the main product. --- ## Attack Surface Signals **URL patterns to hunt:** ``` /xmlrpc.php /wp-login.php /saml/ /sso/ /auth/saml/callback /oauth/callback /partners.* /admin.* /?wc-api= /api/v*/auth /login?redirect= /accounts/login ``` **Response headers signaling SSO:** ``` X-Frame-Options: SAMEORIGIN (common on SSO portals) Set-Cookie: SAMLResponse= Location: https://idp.company.com/saml WWW-Authenticate: Bearer realm="partners" ``` **JS patterns indicating federated auth:** ```javascript // Look for in page source samlRequest RelayState SAMLResponse onelogin shibboleth okta passport.js authenticate ``` **Tech stack signals:** - WordPress + any SSO plugin → check XMLRPC separately - Shopify Partner API exposure → cross-tenant privilege escalation risk - Any app advertising "SSO enabled" or "Login with [Enterprise IdP]" - Separate subdomains for admin/partner that share session cookies with main domain - Applications using `SimpleSAMLphp`, `ruby-saml`, `python-saml` **Burp passive scan triggers:** - `SAMLResponse` in any POST body - `openid_connect` or `id_token` in responses - Cookie domains set to `.company.com` (wildcard) --- ## Step-by-Step Hunting Methodology 1. **Map all authentication entry points** - spider the target for every login surface: main login, admin login, API login, partner portal, mobile API endpoints - check `robots.txt`, JS files, and the wayback machine for forgotten endpoints like `/xmlrpc.php` 2. **Identify the auth mechanism per entry point** - Is it forms-based, SAML, OAuth, API key, session token? - For WordPress: always probe `/xmlrpc.php` even if the main login is SSO-protected 3. **Test XMLRPC independently of SSO** - If site uses SSO (e.g., OneLogin), manually POST to `/xmlrpc.php` - XMLRPC uses WordPress-native credentials, not SSO — test with `system.listMethods` first, then `wp.getUsersBlogs` 4. **Enumerate SAML implementation** - Capture a valid SAMLResponse via Burp - Decode the Base64 payload, inspect the XML - Test signature stripping, comment injection, and XML wrapping attacks - Test if SP validates the signature at all (send unsigned assertion) 5. **Test cross-portal session/token reuse** - Log into `partners.shopify.com` type portals - Attempt to use the issued token/cookie against the main admin portal - Look for shared cookie domains, shared JWT secrets, or API tokens that work across contexts 6. **Fuzz auth parameters** - Null/empty passwords, `password[]=array`, SQL in username field - Try `admin`/`admin`, `test`/`test` on staging subdomains - Modify `role`, `is_admin`, `user_type` in JWTs (none algorithm, weak secret) 7. **Check redirect and state parameters** - Does removing `state` from OAuth break anything? - Can you change `redirect_uri` to an open redirect target? - Does the `RelayState` in SAML get validated? 8. **Verify impact by escalating privileges** - Don't stop at login — prove you can access admin functions, other users' data, or sensitive configuration - Screenshot the highest-privilege action you can perform --- ## Legacy-Protocol Matrix (Probe These First on Any Custom-Branded Login) When a target has a custom, branded login UI (e.g. `customlogin.aspx`, `/auth/signin`, `/account/login`), **always probe the platform's legacy protocol endpoints with native credentials** in parallel. These endpoints frequently outlive the custom UI's protections and accept native credentials with NO rate limit, NO MFA challenge, NO CAPTCHA, NO anti-automation. This is the WordPress XMLRPC pattern generalised across CMS / portal / framework stacks. | Target tech | Legacy endpoint(s) to probe | Native-cred bypass surface | |---|---|---| | **WordPress** | `/xmlrpc.php` (`system.listMethods`, `wp.getUsersBlogs`, `system.multicall`) | Native WP user/pass; bypasses SSO, MFA, IP-allow rules on `/wp-login.php` | | **WordPress (REST)** | `/?rest_route=/wp/v2/users`, `/wp-json/wp/v2/users` | User enumeration anonymously even when login page is hardened | | **SharePoint (any version)** | `/_vti_bin/Authentication.asmx` (`Mode` + `Login` SOAP ops) | Native Forms-auth credential; FedAuth cookie returned; no rate limit on this endpoint observed on SP2013 farms — **this is the canonical SP equivalent of the WP XMLRPC bypass** | | **SharePoint legacy** | `/_vti_bin/_vti_aut/author.dll`, `/_vti_bin/_vti_adm/admin.dll`, `/_vti_bin/owssvr.dll` | FrontPage RPC; sometimes still wired to credential validators | | **SharePoint REST** | `/_api/contextinfo` (POST), `/_api/$metadata` | Anonymous FormDigest issuance; full API surface enumeration | | **Atlassian (Jira / Confluence)** | `/rest/auth/1/session` (basic-auth), `/rest/api/2/myself`, legacy `/rest/api/1.0/` | Native credentials accepted on `/rest/auth/1/session` even when Atlassian Crowd / Atlassian Access SSO is enforced on the U
Run autonomous hunt loop on a target — scope check → recon → rank surface → hunt → validate → report with configurable checkpoints. Usage: /autopilot target.com [--paranoid|--normal|--yolo]
Build an exploit chain — given bug A, finds B and C to combine for higher severity and payout. Knows common chain patterns: IDOR→ATO, SSRF→cloud metadata, XSS→ATO, open redirect→OAuth theft, S3→bundle→secret→OAuth. Usage: /chain
Active vulnerability hunting. Two-track dispatcher — asks Red Team vs WAPT, hands off to hunt-dispatch skill and sibling commands. Usage: /hunt target.com | /hunt *.target.com | /hunt targets.txt [--vuln-class X] [--source-code P] [--chrome]
On-demand intelligence fetch for a target — CVEs, disclosed reports, new features. Wraps learn.py + hunt memory context. Usage: /intel target.com
Inspect or rotate hunt-memory JSONL files (audit.jsonl, patterns.jsonl, journal.jsonl). Caps file size and keeps N rotated backups so memory does not grow unbounded.
Pick up a previous hunt on a target — shows hunt history, untested endpoints, and memory-informed suggestions. Usage: /pickup target.com
Run full recon pipeline on a target — subdomain enum (Chaos API + subfinder), live host discovery (dnsx + httpx), URL crawl (katana + waybackurls + gau), gf pattern classification, nuclei scan. Outputs to recon/<target>/ directory. Usage: /recon target.com
Log current finding or successful pattern to hunt memory. Auto-fills from /validate output if available. Usage: /remember