SOME - Wykonanie Metody z Tego Samego Źródła
Reading time: 3 minutes
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
Wykonanie Metody z Tego Samego Źródła
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 atak będzie bardzo przydatny, ponieważ jego celem jest wykorzystanie 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 wykorzystać (potencjalnie ograniczony do [\w\._]).
- Jeśli nie jest ograniczony i możesz wykonać dowolny JS, możesz po prostu wykorzystać to jak zwykłe 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ę, wykorzystują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).
caution
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 źródle. To jest powód, dla którego, aby wykorzystać tę lukę, musisz znaleźć jakiś rodzaj XSS w tym samym źródle.
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
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.