DOM XSS : LAB [3]

DATE : 2024/1/9

โ—DOM XSS in jQuery anchor href attribute sink using location.search source

์ด๋ฒˆ ๋ฌธ์ œ๋Š” feedback์„ ์ž‘์„ฑํ•˜๋Š” ํŽ˜์ด์ง€์— ์กด์žฌํ•˜๋Š” ์ทจ์•ฝ์ ์„ ์ด์šฉํ•ด

์ฟ ํ‚ค ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ตœ์ข… ๋ชฉํ‘œ์ด๋‹ค.

์šฐ์„ , ์ด LAB์—๋„ ์ทจ์•ฝ์ ์ด ์กด์žฌํ•œ๋‹ค๊ณ  ํ•˜๋‹ˆ ์–ด๋–ค ํ˜•ํƒœ๋กœ XSS๋ฅผ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์„ ์ง€

๋ถ„์„ํ•ด๋ณด๋„๋ก ํ•˜์ž.

LAB์— ์ ‘์†ํ•˜๋ฉด ์šฐ์ธก ์ƒ๋‹จ์— ๋ฐฐ์น˜๋œ Submit feedback ๋ฒ„ํŠผ์„ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

ํ”ผ๋“œ๋ฐฑ ์ž‘์„ฑ ํŽ˜์ด์ง€๋กœ ์ ‘์†ํ•œ ํ›„ URL์„ ๋ณด๋ฉด returnPath parameter๊ฐ€ ์ „๋‹ฌ๋˜๊ณ  ์žˆ๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ด ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์–ด๋””์— ์‚ฌ์šฉ๋˜๋Š” ๊ฐ’์ธ์ง€ Packet์„ ํ™•์ธํ•ด๋ณด๋‹ˆ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์ฝ”๋“œ๋Š” returnPath parameter๋ฅผ a tag์˜ href ์†์„ฑ์œผ๋กœ ์ง€์ •ํ•˜๋ผ๋Š” ๋‚ด์šฉ์œผ๋กœ

์ด๋•Œ ์„ ํƒ์ž๊ฐ€ ๊ฐ€๋ฅดํ‚ค๊ณ  ์žˆ๋Š” element๋Š” ํ”ผ๋“œ๋ฐฑ Form ํ•˜๋‹จ์— ์ œ๊ณต๋˜๋Š” back ๋ฒ„ํŠผ์ด๋‹ค.

์ฆ‰ returnPath๋กœ ์ „๋‹ฌ๋˜๋Š” ๊ฐ’์„ Back ๋ฒ„ํŠผ์˜ ๋งํฌ ๊ฐ’์œผ๋กœ ์ง€์ •ํ•จ์œผ๋กœ์จ

Back ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ์ด๋™ํ•  ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•˜๋Š” ์ฝ”๋“œ์ธ ์…ˆ์ด๋‹ค.

์•ž์„œ ํ’€์—ˆ๋˜ LAB ์ค‘์—์„œ href ์†์„ฑ์„ ์ด์šฉํ•ด

href="javascript:alert(1)"

์ด์™€ ๊ฐ™์€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ–ˆ๋˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค.

<script> tag์— ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ๋ณด์•„ํ•˜๋‹ˆ ์ด๋ฒˆ ๋ฌธ์ œ๋„ ์œ ์‚ฌํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ์„ ๋“ฏํ•˜๋‹ค.

a tag์˜ href ์†์„ฑ์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด์„  returnPath parameter๋กœ ๋‚ด์šฉ์„ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ URL ๋ฐ”์— ์œ„์™€ ๊ฐ™์ด ์ฟ ํ‚ค ์ •๋ณด๋ฅผ alert()์œผ๋กœ ๋„์šฐ๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ด ๋„ฃ์œผ๋ฉด..!!

Back ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ, ํŒ์—… ์ฐฝ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋กœ์จ ์ด๋ฒˆ LAB์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค! ๐Ÿค—

Last updated