SOME - Same Origin Method Execution

Wsparcie dla HackTricks

WhiteIntel to silnik wyszukiwania zasilany dark-web, który oferuje darmowe funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali skompromentowani przez złośliwe oprogramowanie kradnące.

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:


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ść callback, która zostanie wykonana.

W takich przypadkach jedną z najlepszych rzeczy, które możesz zrobić, jest dostęp do DOM, aby wywołać jakąkolwiek 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 ten atak będzie bardzo przydatny, ponieważ jego celem jest możliwość nadużycia 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).

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.

Ponadto, 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.

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 explicite.

  • Sprawdź również ten opis CTF: https://ctftime.org/writeup/36068

Odniesienia

Wsparcie dla HackTricks

Last updated