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
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się sztuczkami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
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
- Możesz użyć tej formy, aby wygenerować PoC do wykorzystania tego typu luki: https://www.someattack.com/Playground/SOMEGenerator
- Aby znaleźć ścieżkę DOM do elementu HTML z kliknięciem, możesz użyć tej rozszerzenia przeglądarki: https://www.someattack.com/Playground/targeting_tool
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życiaopener
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
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się sztuczkami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.