Bypassing SOP with Iframes - 1
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Bu challenge NDevTK ve Terjanq tarafından oluşturulmuştur. Kodlanmış bir XSS'i istismar etmeniz gerekiyor.
Ana sorun, ana sayfanın data.body
göndermek için DomPurify kullanmasıdır, bu nedenle kendi html verinizi o koda göndermek için e.origin !== window.origin
bypass etmeniz gerekir.
Önerdikleri çözüme bakalım.
//example.org
bir sandboxed iframe içine yerleştirildiğinde, sayfanın origin değeri null
olacaktır, yani window.origin === null
. Bu nedenle, <iframe sandbox="allow-scripts" src="https://so-xss.terjanq.me/iframe.php">
ile iframe'i yerleştirerek null
origin değerini zorlayabiliriz.
Eğer sayfa gömülebilir olsaydı, bu korumayı bu şekilde bypass edebilirdiniz (çerezlerin de SameSite=None
olarak ayarlanması gerekebilir).
Daha az bilinen bir gerçek, sandbox değeri allow-popups
olarak ayarlandığında açılan popup'ın tüm sandboxed özellikleri devralacağıdır, allow-popups-to-escape-sandbox
ayarlanmadığı sürece.
Bu nedenle, null origin'den bir popup açmak, popup içindeki window.origin
değerinin de null
olmasını sağlar.
Bu nedenle, bu zorluk için, bir iframe oluşturabilir, vulnerable XSS kod işleyicisine (/iframe.php
) bir popup açabiliriz, çünkü window.origin === e.origin
her ikisi de null
olduğu için XSS'i istismar edecek bir payload göndermek mümkündür.
O payload, identifier'ı alacak ve XSS'i üst sayfaya (popup'ı açan sayfa) geri gönderecek, bu da vulnerable /iframe.php
'ye konum değiştirecektir. Identifier bilindiği için, window.origin === e.origin
koşulunun sağlanmaması önemli değildir (unutmayın, origin null olan iframe'den gelen popup'dır) çünkü data.identifier === identifier
. Ardından, XSS tekrar tetiklenecektir, bu sefer doğru origin'de.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)