8.3 KiB
DOM Invader
{% 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 HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
DOM Invader
DOM Invader to narzędzie przeglądarkowe zainstalowane w wbudowanej przeglądarce Burp. Pomaga w wykrywaniu podatności DOM XSS przy użyciu różnych źródeł i zlewów, w tym wiadomości internetowych i zanieczyszczenia prototypu. Narzędzie jest wstępnie zainstalowane jako rozszerzenie.
DOM Invader integruje zakładkę w panelu DevTools przeglądarki, umożliwiając:
- Identyfikację kontrolowanych zlewów na stronie internetowej do testowania DOM XSS, dostarczając kontekst i szczegóły sanitizacji.
- Rejestrowanie, edytowanie i ponowne wysyłanie wiadomości internetowych wysyłanych za pomocą metody
postMessage()
do testowania DOM XSS. DOM Invader może również automatycznie wykrywać podatności przy użyciu specjalnie przygotowanych wiadomości internetowych. - Wykrywanie źródeł zanieczyszczenia prototypu po stronie klienta i skanowanie kontrolowanych gadżetów wysyłanych do ryzykownych zlewów.
- Identyfikację podatności DOM clobbering.
Włącz to
W wbudowanej przeglądarce Burp przejdź do rozszerzenia Burp i włącz je:
Teraz odśwież stronę, a w Dev Tools znajdziesz zakładkę DOM Invader:
Wstrzyknij Canary
Na poprzednim obrazku możesz zobaczyć losową grupę znaków, to jest Canary. Teraz powinieneś zacząć wstrzykiwać go w różnych częściach sieci (parametry, formularze, url...) i za każdym razem kliknąć wyszukiwanie. DOM Invader sprawdzi, czy canary trafił do jakiegokolwiek interesującego zlewu, który mógłby być wykorzystany.
Ponadto opcje Wstrzyknij parametry URL i Wstrzyknij formularze automatycznie otworzą nową zakładkę, wstrzykując canary w każdy parametr URL i formularz, który znajdą.
Wstrzyknij pusty Canary
Jeśli chcesz tylko znaleźć potencjalne zlewy, które strona może mieć, nawet jeśli nie są wykorzystywalne, możesz wyszukiwać pusty canary.
Wiadomości Post
DOM Invader umożliwia testowanie DOM XSS przy użyciu wiadomości internetowych z takimi funkcjami jak:
- Rejestrowanie wiadomości internetowych wysyłanych za pomocą
postMessage()
, podobnie jak rejestrowanie historii żądań/odpowiedzi HTTP w Burp Proxy. - Modyfikacja i ponowne wydanie wiadomości internetowych w celu ręcznego testowania DOM XSS, podobnie jak funkcja Burp Repeater.
- Automatyczna zmiana i wysyłanie wiadomości internetowych w celu badania DOM XSS.
Szczegóły wiadomości
Szczegółowe informacje o każdej wiadomości można zobaczyć, klikając na nią, co obejmuje, czy JavaScript po stronie klienta uzyskuje dostęp do właściwości origin
, data
lub source
wiadomości.
origin
: Jeśli informacje o pochodzeniu wiadomości nie są sprawdzane, możesz być w stanie wysyłać wiadomości między źródłami do obsługi zdarzeń z dowolnej zewnętrznej domeny. Ale jeśli jest to sprawdzane, nadal może być niebezpieczne.data
: To tutaj wysyłany jest ładunek. Jeśli te dane nie są używane, zlew jest bezużyteczny.source
: Ocena, czy właściwość źródła, zazwyczaj odnosząca się do iframe, jest weryfikowana zamiast pochodzenia. Nawet jeśli to jest sprawdzane, nie zapewnia to, że weryfikacja nie może być obejrzana.
Odpowiedz na wiadomość
- Z widoku Wiadomości kliknij dowolną wiadomość, aby otworzyć okno szczegółów wiadomości.
- Edytuj pole Dane według potrzeb.
- Kliknij Wyślij.
Zanieczyszczenie prototypu
DOM Invader może również wyszukiwać podatności zanieczyszczenia prototypu. Najpierw musisz to włączyć:
Następnie będzie wyszukiwać źródła, które umożliwiają dodawanie dowolnych właściwości do Object.prototype
.
Jeśli coś zostanie znalezione, pojawi się przycisk Test, aby przetestować znalezione źródło. Kliknij na niego, pojawi się nowa zakładka, utwórz obiekt w konsoli i sprawdź, czy testproperty
istnieje:
let b = {}
b.testproperty
Once you found a source you can scan for a gadget:
- Nowa karta jest otwierana przez DOM Invader, gdy klikniesz przycisk Scan for gadgets, który znajduje się obok każdego zidentyfikowanego źródła zanieczyszczenia prototypu w widoku DOM. Rozpoczyna się skanowanie w poszukiwaniu odpowiednich gadżetów.
- W międzyczasie w tej samej karcie powinien być otwarty zakładka DOM Invader w panelu DevTools. Po zakończeniu skanowania, wszelkie zlewy dostępne za pośrednictwem zidentyfikowanych gadżetów są wyświetlane w widoku DOM. Na przykład, właściwość gadżetu o nazwie
html
przekazywana do zlewuinnerHTML
jest pokazana w poniższym przykładzie.
DOM clobbering
Na poprzednim obrazie można zobaczyć, że skanowanie DOM clobbering można włączyć. Po włączeniu, DOM Invader zacznie szukać podatności na DOM clobbering.
References
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/enabling
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-xss
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/web-messages
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/prototype-pollution
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-clobbering
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.