DOM Invader
Reading time: 5 minutes
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
DOM Invader
DOM Invader is 'n blaartoepassing wat in Burp se ingeboude blaarder geïnstalleer is. Dit help met die opsporing van DOM XSS kwesbaarhede deur verskeie bronne en sinke, insluitend webboodskappe en prototipe besoedeling. Die hulpmiddel is vooraf geïnstalleer as 'n uitbreiding.
DOM Invader integreer 'n oortjie binne die blaarder se DevTools-paneel wat die volgende moontlik maak:
- Identifikasie van beheerde sinke op 'n webblad vir DOM XSS toetsing, wat konteks en sanitasiedetails verskaf.
- Teken, redigeer en stuur webboodskappe weer wat via die
postMessage()
metode gestuur is vir DOM XSS toetsing. DOM Invader kan ook outomaties kwesbaarhede opspoor deur spesiaal saamgestelde webboodskappe te gebruik. - Opsporing van klantkant prototipe besoedeling bronne en skandering van beheerde gadgets wat na riskante sinke gestuur word.
- Identifikasie van DOM klobbering kwesbaarhede.
Aktiveer Dit
In Burp se ingeboude blaarder, gaan na die Burp uitbreiding en aktiveer dit:
Nou verfris die bladsy en in die Dev Tools sal jy die DOM Invader oortjie vind:
Injeksie van 'n Kanarie
In die vorige beeld kan jy 'n random groep karakters sien, dit is die Kanarie. Jy moet nou begin injeksie daarvan in verskillende dele van die web (params, vorms, url...) en elke keer op soek klik. DOM Invader sal kyk of die kanarie in enige interessante sink geëindig het wat uitgebuit kan word.
Boonop sal die opsies Injek URL params en Injek vorms outomaties 'n nuwe oortjie injeksie van die kanarie in elke URL param en vorm wat dit vind, oopmaak.
Injeksie van 'n leë Kanarie
As jy net potensiële sinke wil vind wat die bladsy mag hê, selfs al is hulle nie uitbuitbaar nie, kan jy soek na 'n leë kanarie.
Post Boodskappe
DOM Invader laat toetsing van DOM XSS toe deur webboodskappe met funksies soos:
- Teken webboodskappe wat via
postMessage()
gestuur is, soortgelyk aan Burp Proxy se HTTP versoek/antwoord geskiedenis. - Wysiging en heruitreiking van webboodskappe om handmatig vir DOM XSS te toets, soortgelyk aan Burp Repeater se funksie.
- Outomatiese verandering en sending van webboodskappe vir die ondersoek van DOM XSS.
Boodskap besonderhede
Gedetailleerde inligting kan oor elke boodskap gesien word deur daarop te klik, wat insluit of die klantkant JavaScript die origin
, data
, of source
eienskappe van die boodskap benader.
origin
: As die oorsprong inligting van die boodskap nie nagegaan word nie, mag jy in staat wees om kruis-oorsprong boodskappe na die gebeurtenis handler van 'n arbitrêre eksterne domein te stuur. Maar as dit nagegaan word, kan dit steeds onveilig wees.data
: Dit is waar die payload gestuur word. As hierdie data nie gebruik word nie, is die sink nutteloos.source
: Evalueer of die bron eienskap, wat gewoonlik na 'n iframe verwys, gevalideer word in plaas van die oorsprong. Selfs as dit nagegaan word, verseker dit nie dat die validasie omseil kan word nie.
Antwoord 'n boodskap
- Van die Boodskappe sien, klik op enige boodskap om die boodskap besonderhede dialoog te open.
- Wysig die Data veld soos benodig.
- Klik Stuur.
Prototipe Besoedeling
DOM Invader kan ook soek na Prototipe Besoedeling kwesbaarhede. Eerstens, jy moet dit aktiveer:
Dan, dit sal soek na bronne wat jou in staat stel om arbitrêre eienskappe aan die Object.prototype
toe te voeg.
As iets gevind word, sal 'n Toets knoppie verskyn om die gevonde bron te toets. Klik daarop, 'n nuwe oortjie sal verskyn, skep 'n objek in die konsole en kyk of die testproperty
bestaan:
let b = {}
b.testproperty
Sodra jy 'n bron gevind het, kan jy scan vir 'n gadget:
- 'n Nuwe oortjie word deur DOM Invader geopen wanneer die Scan for gadgets knoppie, wat langs enige geïdentifiseerde prototipe besoedeling bron in die DOM-weergave gevind kan word, geklik word. Die skandering vir geskikte gadgets begin dan.
- Intussen, in dieselfde oortjie, moet die DOM Invader oortjie in die DevTools-paneel geopen wees. Nadat die skandering voltooi is, word enige sinke wat via die geïdentifiseerde gadgets toeganklik is, in die DOM-weergave vertoon. Byvoorbeeld, 'n gadget eienskap genaamd
html
wat aan dieinnerHTML
sink oorgedra word, word in die onderstaande voorbeeld getoon.
DOM klobbering
In die vorige beeld is dit moontlik om te sien dat die DOM klobbering skandering aangeskakel kan word. Sodra dit gedoen is, sal DOM Invader begin soek na DOM klobbering kwesbaarhede.
Verwysings
- 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
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.