DOM Invader

Wsparcie HackTricks

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:

  1. Identyfikację kontrolowanych zlewów na stronie internetowej do testowania DOM XSS, dostarczając kontekst i szczegóły sanitizacji.

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

  3. Wykrywanie źródeł zanieczyszczenia prototypu po stronie klienta i skanowanie kontrolowanych gadżetów wysyłanych do ryzykownych zlewów.

  4. 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:

  1. Rejestrowanie wiadomości internetowych wysyłanych za pomocą postMessage(), podobnie jak rejestrowanie historii żądań/odpowiedzi HTTP w Burp Proxy.

  2. Modyfikacja i ponowne wydanie wiadomości internetowych w celu ręcznego testowania DOM XSS, podobnie jak funkcja Burp Repeater.

  3. 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ść

  1. Z widoku Wiadomości kliknij dowolną wiadomość, aby otworzyć okno szczegółów wiadomości.

  2. Edytuj pole Dane według potrzeb.

  3. 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:

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

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

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

Support HackTricks

Last updated