hacktricks/pentesting-web/account-takeover.md

8.4 KiB

Przejęcie Konta

{% hint style="success" %} 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)

Wsparcie dla HackTricks
{% endhint %}

Problem z Autoryzacją

Należy spróbować zmienić adres e-mail konta, a proces potwierdzenia musi być zbadany. Jeśli okaże się słaby, adres e-mail powinien zostać zmieniony na adres zamierzonej ofiary, a następnie potwierdzony.

Problem z Normalizacją Unicode

  1. Konto zamierzonej ofiary victim@gmail.com
  2. Należy utworzyć konto używając Unicode
    na przykład: vićtim@gmail.com

Jak wyjaśniono w tej prezentacji, poprzedni atak można również przeprowadzić, nadużywając zewnętrznych dostawców tożsamości:

  • Utwórz konto u zewnętrznego dostawcy tożsamości z podobnym adresem e-mail do ofiary, używając jakiegoś znaku unicode (vićtim@company.com).
  • Zewnętrzny dostawca nie powinien weryfikować adresu e-mail.
  • Jeśli dostawca tożsamości weryfikuje adres e-mail, być może możesz zaatakować część domeny, na przykład: victim@ćompany.com i zarejestrować tę domenę, mając nadzieję, że dostawca tożsamości wygeneruje wersję ascii domeny, podczas gdy platforma ofiary znormalizuje nazwę domeny.
  • Zaloguj się za pośrednictwem tego dostawcy tożsamości na platformie ofiary, która powinna znormalizować znak unicode i pozwolić ci uzyskać dostęp do konta ofiary.

Aby uzyskać więcej szczegółów, zapoznaj się z dokumentem na temat Normalizacji Unicode:

{% content-ref url="unicode-injection/unicode-normalization.md" %} unicode-normalization.md {% endcontent-ref %}

Ponowne Użycie Tokena Resetowania

Jeśli system docelowy pozwala na ponowne użycie linku resetującego, należy podjąć wysiłki, aby znaleźć więcej linków resetujących przy użyciu narzędzi takich jak gau, wayback lub scan.io.

Przed Przejęciem Konta

  1. E-mail ofiary powinien być użyty do rejestracji na platformie, a hasło powinno być ustawione (należy spróbować je potwierdzić, chociaż brak dostępu do e-maili ofiary może to uniemożliwić).
  2. Należy czekać, aż ofiara zarejestruje się za pomocą OAuth i potwierdzi konto.
  3. Mamy nadzieję, że standardowa rejestracja zostanie potwierdzona, co pozwoli na dostęp do konta ofiary.

Błąd Konfiguracji CORS do Przejęcia Konta

Jeśli strona zawiera błędy konfiguracji CORS, 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:

{% content-ref url="cors-bypass.md" %} cors-bypass.md {% endcontent-ref %}

CSRF do Przejęcia Konta

Jeśli strona jest podatna na CSRF, możesz być w stanie sprawić, że użytkownik zmodyfikuje swoje hasło, e-mail lub uwierzytelnienie, abyś mógł uzyskać do niego dostęp:

{% content-ref url="csrf-cross-site-request-forgery.md" %} csrf-cross-site-request-forgery.md {% endcontent-ref %}

XSS do Przejęcia Konta

Jeśli znajdziesz XSS w aplikacji, możesz być w stanie ukraść ciasteczka, lokalne przechowywanie lub informacje ze strony internetowej, które mogą pozwolić ci przejąć konto:

{% content-ref url="xss-cross-site-scripting/" %} xss-cross-site-scripting {% endcontent-ref %}

Ta Sama Pochodna + Ciasteczka

Jeśli znajdziesz ograniczone XSS lub przejęcie subdomeny, możesz manipulować ciasteczkami (na przykład je ustalając), aby spróbować skompromitować konto ofiary:

{% content-ref url="hacking-with-cookies/" %} hacking-with-cookies {% endcontent-ref %}

Atakowanie Mechanizmu Resetowania Hasła

{% content-ref url="reset-password.md" %} reset-password.md {% endcontent-ref %}

Manipulacja Odpowiedzią

Jeśli odpowiedź uwierzytelniająca może być zredukowana do prostego boolean, spróbuj zmienić false na true i zobacz, czy uzyskasz dostęp.

OAuth do Przejęcia Konta

{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}

Wstrzyknięcie Nagłówka Host

  1. Nagłówek Host jest modyfikowany po zainicjowaniu żądania resetowania hasła.
  2. Nagłówek proxy X-Forwarded-For jest zmieniany na attacker.com.
  3. Nagłówki Host, Referrer i Origin są jednocześnie zmieniane na attacker.com.
  4. Po zainicjowaniu resetowania hasła i wybraniu opcji ponownego wysłania maila, stosowane są wszystkie trzy powyższe metody.

Manipulacja Odpowiedzią

  1. Manipulacja Kodem: Kod statusu jest zmieniany na 200 OK.
  2. Manipulacja Kodem i Treścią:
  • Kod statusu jest zmieniany na 200 OK.
  • Treść odpowiedzi jest modyfikowana na {"success":true} lub pusty obiekt {}.

Te techniki manipulacji są skuteczne w scenariuszach, w których JSON jest wykorzystywany do przesyłania i odbierania danych.

Zmiana e-maila bieżącej sesji

Z tego raportu:

  • Napastnik prosi o zmianę swojego e-maila na nowy.
  • Napastnik otrzymuje link do potwierdzenia zmiany e-maila.
  • Napastnik wysyła ofierze link, aby kliknęła w niego.
  • E-mail ofiary zostaje zmieniony na ten wskazany przez napastnika.
  • Napastnik może odzyskać hasło i przejąć konto.

To również miało miejsce w tym raporcie.

Stare Ciasteczka

Jak wyjaśniono w tym poście, możliwe było zalogowanie się na konto, zapisanie ciasteczek jako uwierzytelniony użytkownik, wylogowanie się, a następnie ponowne zalogowanie.
Przy nowym logowaniu, chociaż mogą być generowane różne ciasteczka, stare zaczęły działać ponownie.

Referencje

{% hint style="success" %} 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)

Wsparcie dla HackTricks
{% endhint %}