SOME - Same Origin Method Execution
Last updated
Last updated
AWS Hacking öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Bir sayfada sınırlı javascript çalıştırabileceğiniz durumlar olacaktır. Örneğin, çalıştırılacak bir geri çağırma değerini kontrol edebildiğiniz durumlarda.
Bu durumlarda yapabileceğiniz en iyi şeylerden biri, orada bulabileceğiniz herhangi bir hassas eylemi çağırmak için DOM'a erişmek olacaktır (örneğin bir düğmeye tıklamak). Ancak, genellikle bu güvenlik açığını DOM'da ilginç bir şey olmayan küçük uç noktalar içinde bulacaksınız.
Bu senaryolarda, bu saldırı çok faydalı olacaktır, çünkü amacı, aynı alan adından farklı bir sayfa içindeki sınırlı JS yürütmesini kötüye kullanabilmek ve daha ilginç eylemler gerçekleştirmektir.
Temelde, saldırı akışı şu şekildedir:
Kötüye kullanabileceğiniz bir geri çağırma bulun (potansiyel olarak [\w\._] ile sınırlı).
Eğer sınırlı değilse ve herhangi bir JS çalıştırabiliyorsanız, bunu normal bir XSS olarak kötüye kullanabilirsiniz.
Kurbanı, saldırgan tarafından kontrol edilen bir sayfayı açmaya zorlayın.
Sayfa kendini farklı bir pencerede açacaktır (yeni pencere, başlangıçtaki nesne opener
ile referans alacaktır).
Başlangıç sayfası, ilginç DOM'un bulunduğu sayfayı yükleyecektir.
İkinci sayfa, geri çağırmayı kötüye kullanarak savunmasız sayfayı yükleyecek ve opener
nesnesini kullanarak başlangıç sayfasında bazı eylemleri erişip çalıştıracaktır (artık ilginç DOM'u içermektedir).
Başlangıç sayfası, ikinci sayfayı oluşturduktan sonra yeni bir URL'ye erişse bile, ikinci sayfanın opener
nesnesi, yeni DOM'daki ilk sayfaya geçerli bir referans olmaya devam eder.
Ayrıca, ikinci sayfanın opener nesnesini kullanabilmesi için her iki sayfanın da aynı kökene sahip olması gerekir. Bu, bu güvenlik açığını kötüye kullanmak için bazı türde aynı köken içinde XSS bulmanız gerektiği anlamına gelir.
Bu formu kullanarak bu tür bir güvenlik açığını istismar etmek için bir PoC oluşturabilirsiniz: https://www.someattack.com/Playground/SOMEGenerator
Bir HTML öğesine tıklayarak bir DOM yolu bulmak için bu tarayıcı uzantısını kullanabilirsiniz: https://www.someattack.com/Playground/targeting_tool
Savunmasız bir örneği https://www.someattack.com/Playground/ adresinde bulabilirsiniz.
Bu örnekte sunucunun javascript kodu ürettiğini ve geri çağırma parametresinin içeriğine göre HTML'ye eklediğini unutmayın: <script>opener.{callbacl_content}</script>
. Bu nedenle bu örnekte opener
kullanımını açıkça belirtmenize gerek yoktur.
Ayrıca bu CTF yazısını kontrol edin: https://ctftime.org/writeup/36068
AWS Hacking öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)