Chociaż nie jestem fanem przeglądarki wbudowanej w Burp Suite to ma ona chociaż jedną zaletę, dla której warto z niej czasami skorzystać. Jest nim wprowadzone w zeszłym roku rozszerzenie – „DOM Invader”. Służy ono do szybkiego i prostego wyszukiwania podatności typu DOM XSS. To, co w nim jest przełomowe, to to, że wyszukuje ono również mało znany wariant DOM XSS oparty na zatruciu prototypów obiektów JavaScript. Świetną prezentację na temat tej konkretnej podatności przedstawił w zeszłym roku Michał Bentkowski:
Uruchomienie rozszerzenia DOM Invader
Aby skorzystać z rozszerzenia, należy najpierw uruchomić przeglądarkę wbudowaną w Burp Suite. Można ją znaleźć w zakładce „Intercept”:
![przeglądarka burp suite](https://sp-ao.shortpixel.ai/client/to_auto,q_lossy,ret_img,w_1024,h_747/https://my127001.pl/wp-content/uploads/2022/12/image-1024x747.png)
Kolejno należy aktywować rozszerzenie DOM Invader w przeglądarce klikając w prawym górnym jej rogu w logo Burp Suite. Należy zaznaczyć opcje „DOM Invader …” oraz „Prototype pollution …”:
![rozszerzenie dom invader](https://sp-ao.shortpixel.ai/client/to_auto,q_lossy,ret_img,w_1024,h_552/https://my127001.pl/wp-content/uploads/2022/12/image-2-1024x552.png)
Na koniec należy jeszcze odświeżyć okno przeglądarki.
Wykorzystanie DOM Invader do wyszukiwania DOM XSS
Żeby wykorzystać funkcjonalność wtyczki, trzeba otworzyć testowaną witrynę i uruchomić narzędzia programistyczne w przeglądarce (F12). Będzie tam widoczna zakładka DOM Invader, do której należy się udać.
![rozszerzenie dom invader](https://sp-ao.shortpixel.ai/client/to_auto,q_lossy,ret_img,w_840,h_394/https://my127001.pl/wp-content/uploads/2022/12/image-3-1024x481.png)
Kolejno kopiujemy wartość tokena z DOM Invadera i używamy go jako wartość parametru, który chcemy przetestować:
![token dom invader](https://sp-ao.shortpixel.ai/client/to_auto,q_lossy,ret_img,w_1024,h_522/https://my127001.pl/wp-content/uploads/2022/12/image-4-1024x522.png)
Jeżeli będzie on podatny to DOM Invader poinformuje nas o tym, wskazując na miejsce, w którym jest możliwe wstrzyknięcie kodu javascript – „var searchResultsObj = {„results”:[],”searchTerm”:”wffvb8zg„}”. Możemy skorzystać teraz z opcji „Exploit” aby DOM Invader spróbował wygenerować kod, który powinien wykorzystać znalezioną podatność:
![dom invader alert(1)](https://sp-ao.shortpixel.ai/client/to_auto,q_lossy,ret_img,w_1024,h_451/https://my127001.pl/wp-content/uploads/2022/12/image-5-1024x451.png)
W rozpatrywanym przypadku nie poradził sobie on sobie z kontekstem, w jakim następuje wstrzyknięcie JavaScriptu oraz tym, że aplikacja wycina cudzysłowy z odpowiedzi serwera. Prawidłowy „payload” wygląda następująco „\"-alert(1337)}//
” i wywołuje klasyczne okienko alertu w przeglądarce:
![dom invader alert](https://sp-ao.shortpixel.ai/client/to_auto,q_lossy,ret_img,w_1024,h_478/https://my127001.pl/wp-content/uploads/2022/12/image-6-1024x478.png)
Wykorzystanie DOM Invader do wyszukiwania błędów protype pollution
Podobnie wygląda procedura w przypadku błędów DOM XSS opartych na prototype pollution.
Otwieramy stronę, którą chcemy poddać naszym testom i przechodzimy do zakładki DOM Invader w narzędziach deweloperskich przeglądarki.
![dom invader prototype pollution](https://sp-ao.shortpixel.ai/client/to_auto,q_lossy,ret_img,w_1024,h_551/https://my127001.pl/wp-content/uploads/2022/12/image-8-1024x551.png)
Jeżeli dana strona jest podatna – naszym oczom ukaże się informacja o łańcuchu protypów podatnych na atak. Możemy teraz przejść do skanowania gadżetów potrzebnych do wykorzystania w celu stworzenia działającego ładunku.
![dom invader skanowanie gadżetów](https://sp-ao.shortpixel.ai/client/to_auto,q_lossy,ret_img,w_1024,h_541/https://my127001.pl/wp-content/uploads/2022/12/image-9-1024x541.png)
Jeżeli się to uda pojawi się opcja wygenerowania gotowego „paylodu”, który wykorzysta właśnie znaleziony przez nas błąd bezpieczeństwa:
![dom invader prototype pollution](https://sp-ao.shortpixel.ai/client/to_auto,q_lossy,ret_img,w_1024,h_535/https://my127001.pl/wp-content/uploads/2022/12/image-11-1024x535.jpg)
Wtyczka jest przydatna także do wyszukiwania podatności DOM XSS wykorzystujących funkcjonalność „web message”. Całą jej dokumentacje można znaleźć pod poniższym linkiem: https://portswigger.net/burp/documentation/desktop/tools/dom-invader