DOM Invader

Reading time: 5 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

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. Identyfikacja 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 jakiegoś 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ą one 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 można zobaczyć o każdej wiadomości, 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ć to niebezpieczne.
  • data: 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 wyszuka ź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, otworzy się nowa zakładka, utwórz obiekt w konsoli i sprawdź, czy testproperty istnieje:

javascript
let b = {}
b.testproperty

Gdy znajdziesz źródło, możesz zeskanować pod kątem gadżetu:

  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 obrazku widać, że skanowanie pod kątem zanieczyszczenia DOM można włączyć. Po włączeniu DOM Invader zacznie szukać luk w zanieczyszczeniu DOM.

References

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