Account Takeover
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
Authorization Issue
Należy spróbować zmienić email konta i skontrolować proces potwierdzania. Jeśli okaże się on słaby, email powinien zostać zmieniony na adres docelowej ofiary i potwierdzony.
Unicode Normalization Issue
- Konto docelowej ofiary
victim@gmail.com - Należy utworzyć konto używając Unicode
na przykład:vićtim@gmail.com
Jak wyjaśniono w this talk, poprzedni atak można również przeprowadzić nadużywając dostawców tożsamości stron trzecich:
- Utwórz konto u dostawcy tożsamości stron trzecich z adresem e-mail podobnym do ofiary, używając jakiegoś znaku Unicode (
vićtim@company.com). - Dostawca stron trzecich nie powinien weryfikować adresu e-mail
- Jeśli dostawca tożsamości weryfikuje e-mail, być może możesz zaatakować część domenową, np.
victim@ćompany.comi zarejestrować tę domenę oraz mieć nadzieję, że dostawca tożsamości wygeneruje ascii wersję domeny, podczas gdy platforma ofiary znormalizuje nazwę domeny. - Zaloguj się przez tego dostawcę tożsamości w platformie ofiary, która powinna znormalizować znak unicode i pozwolić ci uzyskać dostęp do konta ofiary.
For further details, refer to the document on Unicode Normalization:
Reusing Reset Token
Jeżeli system docelowy pozwala na ponowne użycie linku do resetu, należy spróbować odnaleźć więcej linków resetujących używając narzędzi takich jak gau, wayback lub scan.io.
Pre Account Takeover
- Należy użyć e-maila ofiary do rejestracji na platformie i ustawić hasło (należy spróbować potwierdzić konto, choć brak dostępu do skrzynki ofiary może to uniemożliwić).
- Należy poczekać, aż ofiara zarejestruje się używając OAuth i potwierdzi konto.
- Zakłada się, że zwykła rejestracja zostanie potwierdzona, co pozwoli uzyskać dostęp do konta ofiary.
CORS Misconfiguration to Account Takeover
Jeśli strona zawiera CORS misconfigurations, możesz być w stanie ukraść wrażliwe informacje od użytkownika, aby przejąć jego konto lub zmusić go do zmiany informacji uwierzytelniających w tym samym celu:
CORS - Misconfigurations & Bypass
Csrf to Account Takeover
Jeśli strona jest podatna na CSRF, możesz być w stanie zmusić użytkownika do zmiany jego hasła, e-maila lub metod uwierzytelniania, abyś następnie uzyskał do niego dostęp:
CSRF (Cross Site Request Forgery)
XSS to Account Takeover
Jeśli znajdziesz XSS w aplikacji, możesz być w stanie ukraść cookies, local storage lub informacje ze strony, które pozwolą przejąć konto:
- Attribute-only reflected payloads on login pages can hook
document.onkeypress, exfiltrate keystrokes throughnew Image().src, and steal credentials without submitting the form. See Attribute-only login XSS behind WAFs for a practical workflow.
Same Origin + Cookies
Jeśli znajdziesz ograniczony XSS lub subdomain take over, możesz manipulować cookies (np. ustawić je na stałe), aby spróbować skompromitować konto ofiary:
Attacking Password Reset Mechanism
Reset/Forgotten Password Bypass
Security-question resets that trust client-supplied usernames
Jeśli flow “update security questions” przyjmuje parametr username mimo że wywołujący jest już uwierzytelniony, możesz nadpisać dane odzyskiwania dowolnego konta (w tym adminów), ponieważ backend typowo wykonuje UPDATE ... WHERE user_name = ? z twoją nieufną wartością. Schemat jest następujący:
- Zaloguj się przy użyciu konta jednorazowego i przechwyć cookie sesyjne.
- Prześlij nazwę użytkownika ofiary oraz nowe odpowiedzi przez formularz resetu.
- Natychmiast uwierzytelnij się poprzez endpoint logowania po security-question używając odpowiedzi, które właśnie wstrzyknąłeś, aby przejąć uprawnienia ofiary.
POST /reset.php HTTP/1.1
Host: file.era.htb
Cookie: PHPSESSID=<low-priv>
Content-Type: application/x-www-form-urlencoded
username=admin_ef01cab31aa&new_answer1=A&new_answer2=B&new_answer3=C
Wszystko chronione przez kontekst $_SESSION of the victim (admin dashboards, dangerous stream-wrapper features, etc.) jest teraz odsłonięte bez modyfikowania prawdziwych odpowiedzi.
Wyenumerowane nazwy użytkowników mogą być wówczas celem za pomocą overwrite technique powyżej lub ponownie użyte przeciwko usługom pomocniczym (FTP/SSH password spraying).
Response Manipulation
Jeżeli odpowiedź uwierzytelniająca może być zredukowana do prostego booleanu, po prostu spróbuj zmienić false na true i sprawdź, czy uzyskasz dostęp.
OAuth to Account takeover
Host Header Injection
- The Host header is modified following a password reset request initiation.
- The
X-Forwarded-Forproxy header is altered toattacker.com. - The Host, Referrer, and Origin headers are simultaneously changed to
attacker.com. - After initiating a password reset and then opting to resend the mail, all three of the aforementioned methods are employed.
Response Manipulation
- Code Manipulation: kod statusu jest zmieniony na
200 OK. - Code and Body Manipulation:
- kod statusu jest zmieniony na
200 OK. - ciało odpowiedzi jest zmodyfikowane do
{"success":true}lub pustego obiektu{}.
Te techniki manipulacji są skuteczne w scenariuszach, gdzie JSON jest wykorzystywany do przesyłania i odbioru danych.
Change email of current session
From this report:
- Attacker requests to change his email with a new one
- Attacker receives a link to confirm the change of the email
- Attacker send the victim the link so he clicks it
- The victims email is changed to the one indicated by the attacker
- The attack can recover the password and take over the account
This also happened in this report.
Bypass email verification for Account Takeover
- Attacker logins with attacker@test.com and verifies email upon signup.
- Attacker changes verified email to victim@test.com (no secondary verification on email change)
- Now the website allows victim@test.com to login and we have bypassed email verification of victim user.
Old Cookies
As explained in this post, it was possible to login into an account, save the cookies as an authenticated user, logout, and then login again.
With the new login, although different cookies might be generated the old ones became to work again.
Trusted device cookies + batch API leakage
Długotrwałe identyfikatory urządzeń, które gate recovery, mogą zostać skradzione, gdy batch API pozwala skopiować nieczytelne subresponses do zapisywalnych sinks.
- Identify a trusted-device cookie (
SameSite=None, long-lived) used to relax recovery checks. - Find a first-party endpoint that returns that device ID in JSON (e.g., an OAuth
codeexchange returningmachine_id) but is not readable cross-origin. - Use a batch/chained API that allows referencing earlier subresponses (
{result=name:$.path}) and writing them to an attacker-visible sink (page post, upload-by-URL, etc.). Example with Facebook Graph API:
POST https://graph.facebook.com/
batch=[
{"method":"post","omit_response_on_success":0,"relative_url":"/oauth/access_token?client_id=APP_ID%26redirect_uri=REDIRECT_URI","body":"code=SINGLE_USE_CODE","name":"leaker"},
{"method":"post","relative_url":"PAGE_ID/posts","body":"message={result=leaker:$.machine_id}"}
]
access_token=PAGE_ACCESS_TOKEN&method=post
- Załaduj batch URL w ukrytym
<iframe>, tak aby ofiara wysłała trusted-device cookie; odniesienie JSON-path kopiujemachine_iddo posta kontrolowanego przez atakującego, nawet jeśli odpowiedź OAuth jest nieczytelna dla strony. - Replay: ustaw skradziony device cookie w nowej sesji. Recovery traktuje teraz przeglądarkę jako trusted, często ujawniając słabsze „no email/phone” flows (np. automated document upload), które pozwalają dodać attacker email bez password lub 2FA.
Referencje
- https://blog.hackcommander.com/posts/2025/12/28/turning-a-harmless-xss-behind-a-waf-into-a-realistic-phishing-vector/
- https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050
- https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea
- 0xdf – HTB Era: security-question IDOR & username oracle
- Steal DATR Cookie
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.


