SOME - Same Origin Method Execution

Reading time: 3 minutes

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

Same Origin Method Execution

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 şey, 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 DOM'da sınırlı JS yürütmesini kötüye kullanabilmektir 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 güvenlik açığı olan sayfayı yükleyecek ve opener nesnesini kullanarak ilk sayfadaki bir eylemi erişip çalıştıracaktır (artık ilginç DOM'u içermektedir).

caution

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 bir XSS bulmanız gerektiği anlamına gelir.

Exploitation

Example

  • Güvenlik açığı olan bir örneği https://www.someattack.com/Playground/ adresinde bulabilirsiniz.
  • Bu örnekte sunucunun javascript kodu ürettiğini ve bunu geri çağırma parametresinin içeriğine dayalı olarak 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

References

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