DOM Invader
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
DOM Invader
DOM Invader๋ Burp Suite์ ๋ด์ฅ Chromium ๋ธ๋ผ์ฐ์ ์ ์ค์น๋ ๋ธ๋ผ์ฐ์ ๋๊ตฌ์ ๋๋ค. ์ด ๋๊ตฌ๋ DOM XSS ๋ฐ ๊ธฐํ ํด๋ผ์ด์ธํธ ์ธก ์ทจ์ฝ์ (ํ๋กํ ํ์ ์ค์ผ, DOM ํด๋ก๋ฒ๋ง ๋ฑ)์ ์๋์ผ๋ก JavaScript ์์ค ๋ฐ ์ฑํฌ๋ฅผ ๊ณ์ธกํ์ฌ ๊ฐ์งํ๋ ๋ฐ ๋์์ ์ค๋๋ค. ์ด ํ์ฅ์ Burp์ ํจ๊ป ์ ๊ณต๋๋ฉฐ ํ์ฑํ๋ง ํ๋ฉด ๋ฉ๋๋ค.
DOM Invader๋ ๋ธ๋ผ์ฐ์ ์ DevTools ํจ๋์ ํญ์ ์ถ๊ฐํ์ฌ ๋ค์์ ์ํํ ์ ์์ต๋๋ค:
- ์ค์๊ฐ์ผ๋ก ์ ์ด ๊ฐ๋ฅํ ์ฑํฌ๋ฅผ ์๋ณํ๊ณ , ์ปจํ ์คํธ(์์ฑ, HTML, URL, JS) ๋ฐ ์ ์ฉ๋ ์ ํ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
postMessage()์น ๋ฉ์์ง๋ฅผ ๊ธฐ๋ก, ํธ์ง ๋ฐ ์ฌ์ ์กํ๊ฑฐ๋ ํ์ฅ์ด ์๋์ผ๋ก ๋ณํํ๋๋ก ํ ์ ์์ต๋๋ค.- ํด๋ผ์ด์ธํธ ์ธก ํ๋กํ ํ์ ์ค์ผ ์์ค๋ฅผ ๊ฐ์งํ๊ณ ๊ฐ์ ฏโ์ฑํฌ ์ฒด์ธ์ ์ค์บํ์ฌ ์ฆ์์์ PoC๋ฅผ ์์ฑํฉ๋๋ค.
- DOM ํด๋ก๋ฒ๋ง ๋ฒกํฐ๋ฅผ ์ฐพ์ต๋๋ค(์: ์ ์ญ ๋ณ์๋ฅผ ๋ฎ์ด์ฐ๋
id/name์ถฉ๋). - ํ๋ถํ ์ค์ UI๋ฅผ ํตํด ๋์์ ๋ฏธ์ธ ์กฐ์ ํฉ๋๋ค(์ฌ์ฉ์ ์ ์ ์นด๋๋ฆฌ, ์๋ ์ฃผ์ , ๋ฆฌ๋๋ ์ ์ฐจ๋จ, ์์ค/์ฑํฌ ๋ชฉ๋ก ๋ฑ).
1. ํ์ฑํํ๊ธฐ
.png)
- Proxy โ Intercept โ Open Browser (Burp์ ๋ด์ฅ ๋ธ๋ผ์ฐ์ )๋ฅผ ์ฝ๋๋ค.
- Burp Suite ๋ก๊ณ (์ค๋ฅธ์ชฝ ์๋จ)๋ฅผ ํด๋ฆญํฉ๋๋ค. ์จ๊ฒจ์ ธ ์๋ค๋ฉด ๋จผ์ ํผ์ฆ ์กฐ๊ฐ์ ํด๋ฆญํฉ๋๋ค.
- DOM Invader ํญ์์ Enable DOM Invader๋ฅผ ์ผ๊ณ Reload๋ฅผ ๋๋ฆ ๋๋ค.
- DevTools๋ฅผ ์ด๊ณ (
F12/ ์ค๋ฅธ์ชฝ ํด๋ฆญ โ ๊ฒ์ฌ) ๊ณ ์ ํฉ๋๋ค. ์๋ก์ด DOM Invader ํจ๋์ด ๋ํ๋ฉ๋๋ค.
Burp๋ ํ๋กํ๋ณ๋ก ์ํ๋ฅผ ๊ธฐ์ตํฉ๋๋ค. ํ์์ *Settings โ Tools โ Burpโs browser โ Store settingsโฆ*์์ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
2. ์นด๋๋ฆฌ ์ฃผ์ ํ๊ธฐ
์นด๋๋ฆฌ๋ DOM Invader๊ฐ ์ถ์ ํ๋ ์์์ ๋ง์ปค ๋ฌธ์์ด(์: xh9XKYlV)์
๋๋ค. ๋ค์์ ์ํํ ์ ์์ต๋๋ค:
- ๋ณต์ฌํ์ฌ ๋งค๊ฐ๋ณ์, ์์, ์น ์์ผ ํ๋ ์, ์น ๋ฉ์์ง ๋ฑ์ ์๋์ผ๋ก ์ฃผ์ ํฉ๋๋ค.
- Inject URL params / Inject forms ๋ฒํผ์ ์ฌ์ฉํ์ฌ ์นด๋๋ฆฌ๊ฐ ๋ชจ๋ ์ฟผ๋ฆฌ ํค/๊ฐ ๋๋ ์์ ํ๋์ ์๋์ผ๋ก ์ถ๊ฐ๋๋ ์ ํญ์ ์ฝ๋๋ค.
- ๋น ์นด๋๋ฆฌ๋ฅผ ๊ฒ์ํ์ฌ ๋ชจ๋ ์ฑํฌ๋ฅผ ๋ ธ์ถ์ํต๋๋ค(์ ์ฐฐ์ ์ ์ฉ).
์ฌ์ฉ์ ์ ์ ์นด๋๋ฆฌ (2025+)
Burp 2024.12๋ ์นด๋๋ฆฌ ์ค์ ์ ๋์ ํ์ต๋๋ค(Burp ๋ก๊ณ โ DOM Invader โ ์นด๋๋ฆฌ). ๋ค์์ ์ํํ ์ ์์ต๋๋ค:
- ๋ฌด์์ํํ๊ฑฐ๋ ์ฌ์ฉ์ ์ ์ ๋ฌธ์์ด์ ์ค์ ํฉ๋๋ค(๋ค์ค ํญ ํ ์คํธ์ ์ ์ฉํ๊ฑฐ๋ ๊ธฐ๋ณธ๊ฐ์ด ํ์ด์ง์ ์์ฐ์ค๋ฝ๊ฒ ๋ํ๋ ๋).
- ๊ฐ์ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํฉ๋๋ค.
- ๋ณ๊ฒฝ ์ฌํญ์ Reload๊ฐ ํ์ํฉ๋๋ค.
3. ์น ๋ฉ์์ง (postMessage)
Messages ํ์ ํญ์ ๋ชจ๋ window.postMessage() ํธ์ถ์ ๊ธฐ๋กํ๋ฉฐ origin, source, data ์ฌ์ฉ์ ๋ณด์ฌ์ค๋๋ค.
โข ์์ ๋ฐ ์ฌ์ ์ก: ๋ฉ์์ง๋ฅผ ๋๋ธ ํด๋ฆญํ๊ณ data๋ฅผ ํธ์งํ ํ Send๋ฅผ ๋๋ฆ
๋๋ค(Burp Repeater์ ์ ์ฌ).
โข ์๋ ํผ์ง: ์ค์ ์์ Postmessage interception โ Auto-mutate๋ฅผ ํ์ฑํํ์ฌ DOM Invader๊ฐ ์นด๋๋ฆฌ ๊ธฐ๋ฐ ํ์ด๋ก๋๋ฅผ ์์ฑํ๊ณ ํธ๋ค๋ฌ์ ์ฌ์ํ๋๋ก ํฉ๋๋ค.
ํ๋ ์๋ฏธ ์์ฝ:
- origin โ ํธ๋ค๋ฌ๊ฐ
event.origin์ ๊ฒ์ฆํ๋์ง ์ฌ๋ถ. - data โ ํ์ด๋ก๋ ์์น. ์ฌ์ฉ๋์ง ์์ผ๋ฉด ์ฑํฌ๋ ๋ฌด๊ดํฉ๋๋ค.
- source โ iframe / window ์ฐธ์กฐ ๊ฒ์ฆ; ์ข ์ข ์๊ฒฉํ ์ถ์ฒ ํ์ธ๋ณด๋ค ์ฝํฉ๋๋ค.
4. ํ๋กํ ํ์ ์ค์ผ
Settings โ Attack types โ Prototype pollution์์ ํ์ฑํํฉ๋๋ค.
์์ ํ๋ฆ:
- ํ์ โ DOM Invader๋ URL/์ฟผ๋ฆฌ/ํด์ ๋๋ JSON ์น ๋ฉ์์ง์์ ๋ฐ๊ฒฌ๋ ์ค์ผ ์์ค(
__proto__,constructor,prototype)๋ฅผ ํ๋๊ทธํฉ๋๋ค. - ํ
์คํธ โ Test๋ฅผ ํด๋ฆญํ์ฌ
Object.prototype.testproperty๊ฐ ์กด์ฌํด์ผ ํ๋ PoC ํญ์ ์ฝ๋๋ค:
let obj = {};
console.log(obj.testproperty); // โ 'DOM_INVADER_PP_POC'
- ๊ฐ์ ฏ ์ค์บ โ DOM Invader๋ ์์ฑ ์ด๋ฆ์ ๋ฌด์์๋ก ์๋ํ๊ณ ์ด๋ค ๊ฒ์ด ์ํํ ์ฑํฌ์ ๋๋ฌํ๋์ง ์ถ์ ํฉ๋๋ค(์:
innerHTML). - ์ต์คํ๋ก์ โ ๊ฐ์ ฏ-์ฑํฌ ์ฒด์ธ์ด ๋ฐ๊ฒฌ๋๋ฉด Exploit ๋ฒํผ์ด ๋ํ๋ ์์ค + ๊ฐ์ ฏ + ์ฑํฌ๋ฅผ ์ฐ๊ฒฐํ์ฌ ๊ฒฝ๊ณ ๋ฅผ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.
๊ณ ๊ธ ์ค์ (ํฑ๋๋ฐํด ์์ด์ฝ):
- CSP / X-Frame-Options ์ ๊ฑฐํ์ฌ ๊ฐ์ ฏ ์ค์บ ์ค iframe์ด ์๋ ๊ฐ๋ฅํ๋๋ก ์ ์งํฉ๋๋ค.
- ๋ณ๋์ ํ๋ ์์์ ์ค์บ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ
__proto__์constructor๊ฐ์ญ์ ํผํฉ๋๋ค. - ๊ธฐ์ ์ ๊ฐ๋ณ์ ์ผ๋ก ๋นํ์ฑํํ์ฌ ์ทจ์ฝํ ์ฑ์ ๋ง์ถฅ๋๋ค.
5. DOM ํด๋ก๋ฒ๋ง
Attack types โ DOM clobbering์ ์ ํํฉ๋๋ค. DOM Invader๋ id/name ์์ฑ์ด ์ ์ญ ๋ณ์ ๋๋ ์์ ๊ฐ์ฒด์ ์ถฉ๋ํ๋ ๋์ ์ผ๋ก ์์ฑ๋ ์์๋ฅผ ๋ชจ๋ํฐ๋งํฉ๋๋ค(<input name="location"> โ window.location์ ๋ฎ์ด์๋๋ค). ์ฌ์ฉ์ ์ ์ด ๋งํฌ์
์ด ๋ณ์ ๊ต์ฒด๋ก ์ด์ด์ง ๋๋ง๋ค ํญ๋ชฉ์ด ์์ฑ๋ฉ๋๋ค.
6. ์ค์ ๊ฐ์ (2025)
DOM Invader๋ ์ด์ Main / Attack Types / Misc / Canary ์นดํ ๊ณ ๋ฆฌ๋ก ๋๋์ด ์์ต๋๋ค.
- Main
- Enable DOM Invader โ ์ ์ญ ์ค์์น.
- Postmessage interception โ ๋ฉ์์ง ๋ก๊น ์ ์ผ๊ฑฐ๋ ๋๋๋ค; ์๋ ๋ณํ์ ์ํ ํ์ ํ ๊ธ.
- Custom Sources/Sinks โ ํฑ๋๋ฐํด ์์ด์ฝ โ ํน์ ์ฑํฌ(์:
eval,setAttribute)๋ฅผ ํ์ฑํ/๋นํ์ฑํํ์ฌ ์ฑ์ด ์ค๋จ๋์ง ์๋๋ก ํฉ๋๋ค.
- Attack Types
- Prototype pollution (๊ธฐ์ ๋ณ ์ค์ ํฌํจ).
- DOM clobbering.
- Misc
- Redirect prevention โ ํด๋ผ์ด์ธํธ ์ธก ๋ฆฌ๋๋ ์ ์ ์ฐจ๋จํ์ฌ ์ฑํฌ ๋ชฉ๋ก์ด ์์ค๋์ง ์๋๋ก ํฉ๋๋ค.
- Redirect ์ ์ ์ค๋จ์ โ ๋ฆฌ๋๋ ์ ์ง์ ์ JS๋ฅผ ์ผ์ ์ค์งํ์ฌ ํธ์ถ ์คํ์ ๊ฒ์ฌํฉ๋๋ค.
- ๋ชจ๋ ์์ค์ ์นด๋๋ฆฌ ์ฃผ์ โ ์นด๋๋ฆฌ๋ฅผ ๋ชจ๋ ๊ณณ์ ์๋ ์ฃผ์ ํฉ๋๋ค; ๊ตฌ์ฑ ๊ฐ๋ฅํ ์์ค/๋งค๊ฐ๋ณ์ ํ์ฉ ๋ชฉ๋ก.
- Canary
- ์นด๋๋ฆฌ ๋ณด๊ธฐ / ๋ฌด์์ํ / ์ฌ์ฉ์ ์ ์ ์นด๋๋ฆฌ ์ค์ ; ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ๋ธ๋ผ์ฐ์ ์๋ก ๊ณ ์นจ์ด ํ์ํฉ๋๋ค.
7. ํ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก
- ๊ตฌ๋ณ๋๋ ์นด๋๋ฆฌ ์ฌ์ฉ โ
test์ ๊ฐ์ ์ผ๋ฐ ๋ฌธ์์ด์ ํผํ์ญ์์ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ชป๋ ๊ธ์ ์ด ๋ฐ์ํฉ๋๋ค. - ๋ฌด๊ฑฐ์ด ์ฑํฌ(
eval,innerHTML)๋ ํ์ ์ค ํ์ด์ง ๊ธฐ๋ฅ์ด ์ค๋จ๋๋ฉด ์ผ์์ ์ผ๋ก ๋นํ์ฑํํฉ๋๋ค. - Burp Repeater ๋ฐ Proxy์ ๊ฒฐํฉ โ ์ทจ์ฝํ ์ํ๋ฅผ ์์ฑํ ๋ธ๋ผ์ฐ์ ์์ฒญ/์๋ต์ ๋ณต์ ํ๊ณ ์ต์ข ์ต์คํ๋ก์ URL์ ์์ฑํฉ๋๋ค.
- ํ๋ ์ ๋ฒ์ ๊ธฐ์ต โ ์์ค/์ฑํฌ๋ ๋ธ๋ผ์ฐ์ง ์ปจํ ์คํธ๋ณ๋ก ํ์๋ฉ๋๋ค; iframe ๋ด๋ถ์ ์ทจ์ฝ์ ์ ์๋์ผ๋ก ์ง์คํด์ผ ํ ์ ์์ต๋๋ค.
- ์ฆ๊ฑฐ ๋ด๋ณด๋ด๊ธฐ โ DOM Invader ํจ๋์์ ์ค๋ฅธ์ชฝ ํด๋ฆญ โ Save screenshot์ ํด๋ฆญํ์ฌ ๋ณด๊ณ ์์ ํฌํจํฉ๋๋ค.
References
- 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
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


