hacktricks/pentesting-web/account-takeover.md

150 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Hesap Ele Geçirme
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
## **Yetkilendirme Sorunu**
Bir hesabın e-posta adresinin değiştirilmesi denenmeli ve onay süreci **incelenmelidir**. Eğer **zayıf** bulunursa, e-posta hedef kurbanın e-posta adresi ile değiştirilip onaylanmalıdır.
## **Unicode Normalizasyon Sorunu**
1. Hedef kurbanın hesabı `victim@gmail.com`
2. Unicode kullanarak bir hesap oluşturulmalıdır\
örneğin: `vićtim@gmail.com`
[**bu konuşmada**](https://www.youtube.com/watch?v=CiIyaZ3x49c) açıklandığı gibi, önceki saldırı üçüncü taraf kimlik sağlayıcılarını kötüye kullanarak da yapılabilir:
* Kurbanın e-posta adresine benzer bir e-posta ile üçüncü taraf kimlik sağlayıcısında bir hesap oluşturun (`vićtim@company.com`).
* Üçüncü taraf sağlayıcı e-posta adresini doğrulamamalıdır.
* Eğer kimlik sağlayıcı e-posta adresini doğruluyorsa, belki de alan adı kısmını `victim@ćompany.com` gibi saldırıya uğratabilir ve o alan adını kaydedip kimlik sağlayıcının alan adının ascii versiyonunu oluşturmasını umabilirsiniz, bu sırada kurban platformu alan adı adını normalize eder.
* Bu kimlik sağlayıcı aracılığıyla kurban platformuna giriş yapın, bu platform unicode karakterini normalize etmeli ve kurban hesabına erişmenize izin vermelidir.
Daha fazla ayrıntı için, Unicode Normalizasyonu belgesine bakın:
{% content-ref url="unicode-injection/unicode-normalization.md" %}
[unicode-normalization.md](unicode-injection/unicode-normalization.md)
{% endcontent-ref %}
## **Sıfırlama Token'ını Yeniden Kullanma**
Hedef sistem **sıfırlama bağlantısının yeniden kullanılmasına** izin veriyorsa, `gau`, `wayback` veya `scan.io` gibi araçlar kullanarak **daha fazla sıfırlama bağlantısı bulmak için çaba sarf edilmelidir**.
## **Hesap Ele Geçirmeden Önce**
1. Kurbanın e-posta adresi platformda kaydolmak için kullanılmalı ve bir şifre belirlenmelidir (kurbanın e-postalarına erişim yoksa onaylama girişimi yapılamayabilir).
2. Kurbanın OAuth kullanarak kaydolmasını ve hesabı onaylamasını beklemelidir.
3. Normal kaydın onaylanması umulmakta, bu da kurbanın hesabına erişim sağlanmasını mümkün kılmaktadır.
## **CORS Yanlış Yapılandırması ile Hesap Ele Geçirme**
Sayfa **CORS yanlış yapılandırmaları** içeriyorsa, kullanıcının **hassas bilgilerini çalmak** veya aynı amaçla kimlik bilgilerini değiştirmesini sağlamak için **hesabını ele geçirebilirsiniz**:
{% content-ref url="cors-bypass.md" %}
[cors-bypass.md](cors-bypass.md)
{% endcontent-ref %}
## **CSRF ile Hesap Ele Geçirme**
Sayfa CSRF'ye karşı savunmasızsa, **kullanıcının şifresini**, e-posta adresini veya kimlik doğrulamasını değiştirmesini sağlayarak ona erişim sağlayabilirsiniz:
{% content-ref url="csrf-cross-site-request-forgery.md" %}
[csrf-cross-site-request-forgery.md](csrf-cross-site-request-forgery.md)
{% endcontent-ref %}
## **XSS ile Hesap Ele Geçirme**
Uygulamada bir XSS bulursanız, çerezleri, yerel depolamayı veya hesabı ele geçirmenizi sağlayacak web sayfasından bilgileri çalabilirsiniz:
{% content-ref url="xss-cross-site-scripting/" %}
[xss-cross-site-scripting](xss-cross-site-scripting/)
{% endcontent-ref %}
## **Aynı Kaynak + Çerezler**
Sınırlı bir XSS veya bir alt alan ele geçirme bulursanız, çerezlerle (örneğin, onları sabitleyerek) o kurban hesabını tehlikeye atmayı deneyebilirsiniz:
{% content-ref url="hacking-with-cookies/" %}
[hacking-with-cookies](hacking-with-cookies/)
{% endcontent-ref %}
## **Şifre Sıfırlama Mekanizmasına Saldırı**
{% content-ref url="reset-password.md" %}
[reset-password.md](reset-password.md)
{% endcontent-ref %}
## **Yanıt Manipülasyonu**
Eğer kimlik doğrulama yanıtı **basit bir boolean'a indirgenebiliyorsa, false'u true olarak değiştirmeyi deneyin** ve herhangi bir erişim elde edip edemediğinizi görün.
## OAuth ile Hesap Ele Geçirme
{% content-ref url="oauth-to-account-takeover.md" %}
[oauth-to-account-takeover.md](oauth-to-account-takeover.md)
{% endcontent-ref %}
## Host Başlık Enjeksiyonu
1. Şifre sıfırlama isteği başlatıldıktan sonra Host başlığı değiştirilir.
2. `X-Forwarded-For` proxy başlığı `attacker.com` olarak değiştirilir.
3. Host, Referrer ve Origin başlıkları aynı anda `attacker.com` olarak değiştirilir.
4. Şifre sıfırlama başlatıldıktan sonra e-postayı yeniden göndermeyi seçerken, yukarıda belirtilen üç yöntem de kullanılır.
## Yanıt Manipülasyonu
1. **Kod Manipülasyonu**: Durum kodu `200 OK` olarak değiştirilir.
2. **Kod ve Gövde Manipülasyonu**:
* Durum kodu `200 OK` olarak değiştirilir.
* Yanıt gövdesi `{"success":true}` veya boş bir nesne `{}` olarak değiştirilir.
Bu manipülasyon teknikleri, veri iletimi ve alımı için JSON kullanıldığında etkilidir.
## Mevcut oturumun e-posta adresini değiştirme
[bu rapordan](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea):
* Saldırgan yeni bir e-posta ile e-posta adresini değiştirmeyi talep eder.
* Saldırgan, e-posta değişikliğini onaylamak için bir bağlantı alır.
* Saldırgan, kurbana bağlantıyı gönderir, böylece tıklayabilir.
* Kurbanın e-posta adresi saldırganın belirttiği e-posta adresi ile değiştirilir.
* Saldırgan şifreyi kurtarabilir ve hesabı ele geçirebilir.
Bu, [**bu raporda**](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea) da olmuştur.
### Eski Çerezler
[**bu yazıda**](https://medium.com/@niraj1mahajan/uncovering-the-hidden-vulnerability-how-i-found-an-authentication-bypass-on-shopifys-exchange-cc2729ea31a9) açıklandığı gibi, bir hesaba giriş yapmak, çerezleri kimlik doğrulaması yapılmış bir kullanıcı olarak kaydetmek, çıkış yapmak ve sonra tekrar giriş yapmak mümkündü.\
Yeni girişle, farklı çerezler oluşturulmuş olsa da eski çerezler tekrar çalışmaya başladı.
## Referanslar
* [https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050](https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050)
* [https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea)
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}