DOM Invader
Last updated
Last updated
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)
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 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:
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ą.
Jeśli chcesz tylko znaleźć potencjalne zlewy, które strona może mieć, nawet jeśli nie są wykorzystywalne, możesz wyszukiwać pusty canary.
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ół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.
Z widoku Wiadomości kliknij dowolną wiadomość, aby otworzyć okno szczegółów wiadomości.
Edytuj pole Dane według potrzeb.
Kliknij Wyślij.
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:
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 zlewu innerHTML
jest pokazana w poniższym przykładzie.
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.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)