hacktricks/pentesting-web/xss-cross-site-scripting/some-same-origin-method-execution.md

5.2 KiB

SOME - Wykonanie metody o tej samej domenie

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

WhiteIntel

WhiteIntel to wyszukiwarka zasilana przez dark web, która oferuje darmowe funkcje do sprawdzania, czy firma lub jej klienci zostali skompromitowani przez złośliwe oprogramowanie kradnące dane.

Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.

Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za darmo pod adresem:

{% embed url="https://whiteintel.io" %}


Wykonanie metody o tej samej domenie

Zdarzą się sytuacje, w których możesz wykonać pewien ograniczony kod JavaScript na stronie. Na przykład, gdy możesz kontrolować wartość wywołania zwrotnego, która zostanie wykonana.

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

W takich scenariuszach ten atak będzie bardzo przydatny, ponieważ jego celem jest wykorzystanie ograniczonego wykonania JS wewnątrz DOM z innej strony tej samej domeny z dużą liczbą interesujących działań.

W zasadzie, przepływ ataku wygląda następująco:

  • Znajdź zwrotkę, którą możesz wykorzystać (potencjalnie ograniczoną do [\w\._]).
  • Jeśli nie jest ograniczona i możesz wykonać dowolny JS, możesz po prostu wykorzystać to jak zwykłe XSS
  • Spowoduj, że ofiara otworzy 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 podatną stronę, wykorzystując zwrotkę i korzystając z obiektu opener do uzyskania dostępu i wykonania pewnej akcji w początkowej stronie (która teraz zawiera interesujący DOM).

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

Co więcej, aby druga strona mogła użyć obiektu opener, obie strony muszą być w tej samej domenie. To dlatego, aby wykorzystać tę podatność, musisz znaleźć pewnego rodzaju XSS w tej samej domenie. {% endhint %}

Wykorzystanie

Przykład

  • Możesz znaleźć podatny przykład pod adresem 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 zwrotki: <script>opener.{callbacl_content}</script> . Dlatego w tym przykładzie nie trzeba wskazywać użycia opener explicite.
  • Sprawdź również ten opis CTF: https://ctftime.org/writeup/36068

Odnośniki