DOM Invader
Reading time: 7 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na π¬ kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter π¦ @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
DOM Invader
DOM Invader ni chombo cha kivinjari kilichowekwa kwenye kivinjari cha Chromium kilichojumuishwa cha Burp Suite. Inasaidia katika kubaini DOM XSS na udhaifu mwingine wa upande wa mteja (uchafuzi wa prototype, DOM clobbering, n.k.) kwa kujiendesha kiotomatiki kuweka vifaa vya JavaScript na vyanzo. Kiongezeo hiki kinakuja na Burp na kinahitaji tu kuwezeshwa.
DOM Invader inaongeza kichupo kwenye paneli ya DevTools ya kivinjari ambayo inakuwezesha:
- Tambua vyanzo vinavyoweza kudhibitiwa kwa wakati halisi, ikiwa ni pamoja na muktadha (attribute, HTML, URL, JS) na usafi uliofanywa.
- Rekodi, hariri na tuma tena
postMessage()
ujumbe wa wavuti, au acha kiongezeo kibadilishe moja kwa moja. - Gundua vyanzo vya uchafuzi wa prototype wa upande wa mteja na scan kwa minyororo ya gadgetβsink, ikitengeneza PoCs kwa wakati.
- Pata mwelekeo wa DOM clobbering (mfano
id
/name
migongano inayofuta mabadiliko ya kimataifa). - Boresha tabia kupitia UI tajiri ya Mipangilio (canary maalum, auto-injection, kuzuia upitishaji, orodha za vyanzo/vyanzo, n.k.).
1. Wezesha
.png)
- Fungua Proxy β Intercept β Open Browser (kivinjari kilichojumuishwa cha Burp).
- Bonyeza nembo ya Burp Suite (juu-kulia). Ikiwa imefichwa, bonyeza kipande cha puzzle kwanza.
- Katika kichupo cha DOM Invader, geuza Enable DOM Invader kuwa ON na bonyeza Reload.
- Fungua DevTools (
F12
/ Bonyeza-kulia β Inspect ) na uweke. Paneli mpya ya DOM Invader inaonekana.
Burp inakumbuka hali kwa kila wasifu. Zima chini ya Settings β Tools β Burpβs browser β Store settings... ikiwa inahitajika.
2. Ingiza Canary
Canary ni mfuatano wa alama wa nasibu (mfano xh9XKYlV
) ambao DOM Invader inafuatilia. Unaweza:
- Nakili na kuingiza kwa mikono katika vigezo, fomu, fremu za Web-Socket, ujumbe wa wavuti, n.k.
- Tumia Inject URL params / Inject forms vifungo kufungua kichupo kipya ambapo canary inaongezwa kwa kila ufunguo wa swali/key au uwanja wa fomu kiotomatiki.
- Tafuta canary tupu ili kufichua vyanzo vyote bila kujali uwezekano wa kutumia (nzuri kwa upelelezi).
Canary maalum (2025+)
Burp 2024.12 ilianzisha Mipangilio ya Canary (Burp-logo β DOM Invader β Canary). Unaweza:
- Randomize au kuweka mfuatano maalum (inasaidia kwa majaribio ya tab nyingi au wakati thamani ya chaguo-msingi inajitokeza kwa asili kwenye ukurasa).
- Nakili thamani kwenye clipboard.
- Mabadiliko yanahitaji Reload.
3. Ujumbe wa wavuti (postMessage
)
Kichupo cha Messages kinarekodi kila wito wa window.postMessage()
, kikionyesha matumizi ya origin
, source
, na data
.
β’ Badilisha & tuma tena: bonyeza mara mbili ujumbe, hariri data
, na bonyeza Send (kama Burp Repeater).
β’ Auto-fuzz: wezesha Postmessage interception β Auto-mutate kwenye mipangilio ili kuruhusu DOM Invader kutengeneza payloads za msingi wa canary na kuzireplay kwa handler.
Muhtasari wa maana ya uwanja:
- origin β ikiwa handler inathibitisha
event.origin
. - data β eneo la payload. Ikiwa halitumiki, sink si muhimu.
- source β uthibitisho wa marejeleo ya iframe / dirisha; mara nyingi dhaifu kuliko ukaguzi wa asili mkali.
4. Uchafuzi wa Prototype
Wezesha chini ya Settings β Attack types β Prototype pollution.
Mchakato:
- Browse β DOM Invader inabaini uchafuzi vyanzo (
__proto__
,constructor
,prototype
) vilivyopatikana katika URL/query/hash au ujumbe wa JSON wa wavuti. - Test β bonyeza Test kufungua kichupo cha PoC ambapo
Object.prototype.testproperty
inapaswa kuwepo:
let obj = {};
console.log(obj.testproperty); // β 'DOM_INVADER_PP_POC'
- Scan for gadgets β DOM Invader inajaribu majina ya mali na kufuatilia ikiwa yoyote inamalizika kwenye vyanzo hatari (mfano
innerHTML
). - Exploit β wakati minyororo ya gadget-sink inapatikana, kitufe cha Exploit kinaonekana kinachounganisha chanzo + gadget + sink ili kuanzisha tahadhari.
Mipangilio ya juu (ikoni ya cog):
- Ondoa CSP / X-Frame-Options ili kuweka iframes zikiwa na kazi wakati wa skanning ya gadget.
- Scan techniques in separate frames ili kuepuka kuingiliana kwa
__proto__
dhidi yaconstructor
. - Zima mbinu moja kwa moja kwa programu dhaifu.
5. DOM Clobbering
Geuza Attack types β DOM clobbering. DOM Invader inafuatilia vipengele vilivyoundwa kwa nguvu ambavyo id
/name
attributes vinagongana na mabadiliko ya kimataifa au vitu vya fomu (<input name="location">
β inafuta window.location
). Kuingia kunatolewa kila wakati muundo unaodhibitiwa na mtumiaji unapelekea kubadilishwa kwa mabadiliko.
6. Muonekano wa Mipangilio (2025)
DOM Invader sasa imegawanywa katika makundi ya Main / Attack Types / Misc / Canary.
- Main
- Enable DOM Invader β swichi ya kimataifa.
- Postmessage interception β wezesha/kuzima urekodi wa ujumbe; sub-toggles kwa auto-mutation.
- Custom Sources/Sinks β ikoni ya cog β wezesha/zima vyanzo maalum (mfano
eval
,setAttribute
) ambavyo vinaweza kuvunja programu.
- Attack Types
- Prototype pollution (ikiwa na mipangilio ya mbinu).
- DOM clobbering.
- Misc
- Redirect prevention β zuia upitishaji wa upande wa mteja ili orodha ya sink isipotee.
- Breakpoint before redirect β simamisha JS kabla ya upitishaji kwa ukaguzi wa call-stack.
- Inject canary into all sources β auto-inject canary kila mahali; orodha ya vyanzo/vigezo inayoweza kubadilishwa.
- Canary
- Tazama / randomize / weka canary maalum; nakili kwenye clipboard. Mabadiliko yanahitaji upya wa kivinjari.
7. Vidokezo & Mazoea Mazuri
- Tumia canary tofauti β epuka mfuatano wa kawaida kama
test
, vinginevyo kutakuwa na matokeo ya uwongo. - Zima vyanzo vizito (
eval
,innerHTML
) kwa muda ikiwa vinavunja kazi ya ukurasa wakati wa urambazaji. - Changanya na Burp Repeater & Proxy β rudia ombi/jibu la kivinjari ambalo lilisababisha hali yenye udhaifu na tengeneza URL za mwisho za exploit.
- Kumbuka upeo wa fremu β vyanzo/vyanzo vinaonyeshwa kwa kila muktadha wa urambazaji; udhaifu ndani ya iframes unaweza kuhitaji umakini wa mikono.
- Export evidence β bonyeza-kulia paneli ya DOM Invader β Save screenshot ili kujumuisha katika ripoti.
Marejeleo
- 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
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/settings/canary
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/settings/misc
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na π¬ kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter π¦ @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.