hacktricks/pentesting-web/xss-cross-site-scripting/some-same-origin-method-execution.md
2024-12-12 13:54:31 +01:00

5.5 KiB

SOME - Wykonanie Metody Tego Samego Pochodzenia

{% hint style="success" %} Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie dla HackTricks
{% endhint %}

Wykonanie Metody Tego Samego Pochodzenia

Będą sytuacje, w których możesz wykonać ograniczony javascript na stronie. Na przykład, w przypadku, gdy możesz kontrolować wartość zwrotną, która zostanie wykonana.

W takich przypadkach jedną z najlepszych rzeczy, które możesz zrobić, jest dostęp do DOM, aby wywołać dowolną wrażliwą akcję, którą możesz tam znaleźć (jak kliknięcie przycisku). Jednak zazwyczaj znajdziesz tę lukę w małych punktach końcowych bez żadnych interesujących rzeczy w DOM.

W tych scenariuszach, ta atak będzie bardzo przydatny, ponieważ jego celem jest nadużycie ograniczonego wykonania JS wewnątrz DOM z innej strony z tej samej domeny z wieloma interesującymi akcjami.

Zasadniczo, przepływ ataku jest następujący:

  • Znajdź callback, który możesz nadużyć (potencjalnie ograniczony do [\w\._]).
  • Jeśli nie jest ograniczony i możesz wykonać dowolny JS, możesz po prostu nadużyć tego jak zwykłego XSS
  • Spraw, aby ofiara otworzyła stronę kontrolowaną przez atakującego
  • Strona otworzy się w innym oknie (nowe okno będzie miało obiekt opener odnoszący się do początkowego)
  • Początkowa strona załaduje stronę, na której znajduje się interesujący DOM.
  • Druga strona załaduje wrażliwą stronę, nadużywając callback i używając obiektu opener, aby uzyskać dostęp i wykonać jakąś akcję na początkowej stronie (która teraz zawiera interesujący DOM).

{% hint style="danger" %} Zauważ, że nawet jeśli początkowa strona uzyskuje dostęp do nowego URL po utworzeniu drugiej strony, obiekt opener drugiej strony jest nadal ważnym odniesieniem do pierwszej strony w nowym DOM.

Co więcej, aby druga strona mogła używać obiektu opener, obie strony muszą być w tym samym pochodzeniu. To jest powód, dla którego, aby nadużyć tę lukę, musisz znaleźć jakiś rodzaj XSS w tym samym pochodzeniu. {% endhint %}

Wykorzystanie

Przykład

  • Możesz znaleźć wrażliwy przykład w https://www.someattack.com/Playground/
  • Zauważ, że w tym przykładzie serwer generuje kod javascript i dodaje go do HTML na podstawie zawartości parametru callback: <script>opener.{callbacl_content}</script>. Dlatego w tym przykładzie nie musisz wskazywać użycia opener w sposób expliczny.
  • Sprawdź również ten opis CTF: https://ctftime.org/writeup/36068

Odniesienia

{% hint style="success" %} Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie dla HackTricks
{% endhint %}