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

Problem z autoryzacją

Należy spróbować zmienić email konta i dokładnie sprawdzić proces potwierdzania. Jeśli okaże się słaby, należy zmienić email na adres docelowej ofiary i następnie go potwierdzić.

Problem normalizacji Unicode

  1. Konto docelowej ofiary victim@gmail.com
  2. Należy utworzyć konto używając znaków Unicode, np.: vićtim@gmail.com

Jak wyjaśniono w this talk, powyższy atak można również przeprowadzić wykorzystując zewnętrznych dostawców tożsamości:

  • Utwórz konto u zewnętrznego dostawcy tożsamości z adresem email podobnym do ofiary, używając jakiegoś znaku unicode (vićtim@company.com).
  • Zewnętrzny dostawca nie powinien weryfikować emaila
  • Jeśli dostawca tożsamości weryfikuje email, możesz spróbować zaatakować część domeny, np.: victim@ćompany.com i zarejestrować taką domenę, licząc, że dostawca tożsamości wygeneruje ASCII-ową 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 na dostęp do konta ofiary.

Po więcej szczegółów odnieś się do dokumentu o normalizacji Unicode:

Unicode Normalization

Ponowne użycie tokenu resetu

Jeżeli system docelowy pozwala na ponowne użycie linku resetującego, należy spróbować znaleźć więcej linków resetujących używając narzędzi takich jak gau, wayback lub scan.io.

Pre Account Takeover

  1. Adres email ofiary powinien być użyty do rejestracji na platformie, a hasło powinno zostać ustawione (należy spróbować je potwierdzić, choć brak dostępu do skrzynki ofiary może to uniemożliwić).
  2. Należy poczekać, aż ofiara zaloguje się używając OAuth i potwierdzi konto.
  3. Oczekuje się, że zwykła rejestracja zostanie potwierdzona, co umożliwi dostęp do konta ofiary.

Błędna konfiguracja CORS prowadząca do Account Takeover

Jeśli strona zawiera błędną konfigurację CORS, możesz być w stanie ukraść wrażliwe informacje od użytkownika, aby przejąć jego konto albo zmusić go do zmiany danych 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 spowodować, że użytkownik zmieni swoje hasło, email lub dane uwierzytelniające, 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ść ciasteczka, local storage lub informacje ze strony, które pozwolą ci przejąć konto:

XSS (Cross Site Scripting)

Same Origin + Cookies

Jeśli znajdziesz ograniczone XSS lub przejmiesz subdomenę, możesz manipulować cookies (np. przypisując je na stałe) aby spróbować skompromitować konto ofiary:

Cookies Hacking

Attacking Password Reset Mechanism

Reset/Forgotten Password Bypass

Resety pytań bezpieczeństwa, które ufają nazwom użytkowników dostarczanym przez klienta

Jeśli proces “update security questions” przyjmuje parametr username mimo że wykonawca jest już uwierzytelniony, możesz nadpisać dane odzyskiwania dowolnego konta (w tym administratorów), ponieważ backend zwykle wykonuje UPDATE ... WHERE user_name = ? z twoją niezweryfikowaną wartością. Schemat działania:

  1. Zaloguj się przy pomocy jednorazowego konta i przechwyć cookie sesji.
  2. Prześlij nazwę użytkownika ofiary oraz nowe odpowiedzi przez formularz resetu.
  3. Natychmiast uwierzytelnij się przez endpoint logowania za pomocą pytań bezpieczeństwa, 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

Anything gated by the victim’s $_SESSION context (admin dashboards, dangerous stream-wrapper features, etc.) is now exposed without touching the real answers.

Enumerated usernames can then be targeted via the overwrite technique above or reused against ancillary services (FTP/SSH password spraying).

Response Manipulation

If the authentication response could be reduced to a simple boolean just try to change false to true and see if you get any access.

OAuth to Account takeover

OAuth to Account takeover

Host Header Injection

  1. The Host header is modified following a password reset request initiation.
  2. The X-Forwarded-For proxy header is altered to attacker.com.
  3. The Host, Referrer, and Origin headers are simultaneously changed to attacker.com.
  4. After initiating a password reset and then opting to resend the mail, all three of the aforementioned methods are employed.

Response Manipulation

  1. Code Manipulation: The status code is altered to 200 OK.
  2. Code and Body Manipulation:
  • The status code is changed to 200 OK.
  • The response body is modified to {"success":true} or an empty object {}.

These manipulation techniques are effective in scenarios where JSON is utilized for data transmission and receipt.

Change email of current session

From this report:

  • Atakujący żąda zmiany swojego e-maila na nowy
  • Atakujący otrzymuje link do potwierdzenia zmiany e-maila
  • Atakujący wysyła ofierze link, aby ta w niego kliknęła
  • E-mail ofiary zostaje zmieniony na wskazany przez atakującego
  • Atak może odzyskać hasło i przejąć konto

This also happened in this report.

Bypass email verification for Account Takeover

  • Atakujący loguje się przy użyciu attacker@test.com i weryfikuje e-mail podczas rejestracji.
  • Atakujący zmienia zweryfikowany e-mail na victim@test.com (no secondary verification on email change)
  • Teraz strona pozwala victim@test.com na logowanie i ominęliśmy weryfikację e-mail użytkownika.

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.

References

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