Reflected XSS : LAB [4]

DATE : 2024/1/12

โ—Reflected XSS into HTML context with most tags and attributes blocked

๋Œ€๋ถ€๋ถ„์˜ HTML tag๊ฐ€ ์ฐจ๋‹จ๋˜๋Š” ์ƒํ™ฉ์—์„œ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์ด

์ด๋ฒˆ LAB์˜ ๋ชฉํ‘œ์ด๋‹ค.

์ผ๋‹จ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์ด ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด hanhxx๋ฅผ ์ž…๋ ฅํ•ด๋ณด์•˜๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์ด search parameter๋กœ ์ „๋‹ฌ๋˜๋Š” ๋™์‹œ์— ๊ฒฐ๊ณผ ๋ฌธ์ž์— ๋‚˜์˜ค๊ณ  ์žˆ๋Š” ๊ฑธ ๋ณด๋ฉด

search parameter๊ฐ€ ๊ณง ๋ฐ”๋กœ search results for '___' ๋นˆ์นธ์— ๋“ค์–ด๊ฐ€๋Š” ๊ตฌ์กฐ์ž„์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฌธ๊ตฌ ์‚ฌ์ด์— ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•ด XSS ๊ณต๊ฒฉ์„ ์ทจํ•˜๊ธฐ ์œ„ํ•ด ํƒœ๊ทธ๋ฅผ ๋จผ์ € ๋„ฃ์–ด๋ดค๋Š”๋ฐ

Response๋ฅผ ๋ณด๋ฉด ์•Œ๊ฒ ์ง€๋งŒ Tag is not allowed..!

LAB ์ œ๋ชฉ์—๋„ ์“ฐ์—ฌ์ ธ ์žˆ๋“ฏ์ด ํƒœ๊ทธ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๋‹ค๋Š” ๋ฌธ๊ตฌ๋งŒ ๋‚˜์˜จ๋‹ค.

ํ•˜์ง€๋งŒ ๋ชจ๋“  tag๊ฐ€ ์ฐจ๋‹จ๋˜๋Š” ์ƒํ™ฉ์€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฐจ๋‹จ๋˜์ง€ ์•Š๋Š” ํƒœ๊ทธ๋ฅผ ๋จผ์ € ์•Œ์•„๋‚ด์•ผ ํ•œ๋‹ค.

port swigger์—์„œ ์ •๋ฆฌํ•ด๋‘” tag list๋ฅผ payload๋กœ ์‚ฌ์šฉํ•ด Intruder๋ฅผ ์‹คํ–‰ํ•ด๋ณด์•˜๋‹ค.

๊ทธ ๊ฒฐ๊ณผ ๋ช‡ ๊ฐœ์˜ ํƒœ๊ทธ๋Š” ์ฐจ๋‹จ๋˜์ง€ ์•Š๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ ๊ทธ์ค‘์— ํ•˜๋‚˜๊ฐ€ body tag์ด๋‹ค.

์•„! ๊ทธ๋Ÿผ ์ด์ œ body tag์— event handler๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋˜๊ฒ ๋‹ค! ์‹ถ์—ˆ์ง€๋งŒ,,

์•Œ๊ณ  ๋ณด๋‹ˆ event handler๋„ ์ œํ•œ๋˜๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์ด์—ˆ๋‹ค.

์ด ์—ญ์‹œ event handler list๋ฅผ ๊ฐ€์ ธ๋‹ค๊ฐ€ Intruder๋ฅผ ์‹คํ–‰ํ•ด ํ—ˆ์šฉ๋˜๋Š” ์†์„ฑ์„ ํ™•์ธํ•ด๋ณด์•˜๋‹ค.

ํƒœ๊ทธ์™€ ๋‹ฌ๋ฆฌ event handler๋Š” ํ—ˆ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋” ๋งŽ์•˜๋Š”๋ฐ LAB์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”

onresize๋ฅผ ์‚ฌ์šฉํ•ด๋ณผ๊นŒ ํ•œ๋‹ค.

search parameter ์ž๋ฆฌ์— body tag - onresize event handler๋ฅผ ์ž‘์„ฑํ•˜๋ฉด

Response์— ์ •์ƒ์ ์œผ๋กœ body tag๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์‚ฝ์ž…ํ•  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ค€๋น„ํ–ˆ์œผ๋‹ˆ ์ด์ œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ „๋‹ฌํ•ด๋ณด์ž.

LAB ์ƒ๋‹จ์— ์œ„์น˜ํ•œ Go to exploit server๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ณต๊ฒฉ์ž ์„œ๋ฒ„๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

body ๋ถ€๋ถ„์— ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋˜๋Š”๋ฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ด packet์„ ๋ฐ›์•˜์„ ๋•Œ,

์ทจ์•ฝ์ ์ด ์กด์žฌํ•˜๋Š” ๋ฐ ์‚ฌ์ดํŠธ์— ์œ„์—์„œ ์ค€๋น„ํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—

์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ iframe tag๊ฐ€ ๋“ฑ์žฅํ•˜๊ฒŒ ๋œ๋‹ค.

iframe tag๋Š” ํŽ˜์ด์ง€ ์•ˆ์— ์™ธ๋ถ€ ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์ ธ์™€ ์‚ฝ์ž…ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํƒœ๊ทธ๋กœ

src ์†์„ฑ์— ์ž‘์„ฑ๋œ ๊ฒฝ๋กœ์˜ ํŽ˜์ด์ง€๋ฅผ iframe tag๋ฅผ ์‚ฌ์šฉํ•œ ํŽ˜์ด์ง€๋กœ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋œ๋‹ค.

ํ˜„์žฌ ์ž‘์„ฑํ•œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ทจ์•ฝ์ ์ด ์กด์žฌํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜๋Š”๋ฐ ๋™์‹œ์—

search parameter๋กœ <body onresize=print()>๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ๋˜๋ฉด iframe tag์— ์ž‘์„ฑํ•ด๋‘” onload event handler๊ฐ€ ๋™์ž‘ํ•˜์—ฌ ํฌ๊ธฐ๊ฐ€ 120px๋กœ ์กฐ์ •๋˜๋Š” ์‹œ์ ์—

onresize event handler๊ฐ€ ๋™์ž‘ํ•˜๊ฒŒ ๋˜๋ฉด์„œ print() ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๋”ฐ๋ผ์„œ ์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ „๋‹ฌ ๋ฐ›์€ ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” print() ๊ฒฐ๊ณผ์ธ ํ”„๋ฆฐํŠธ ์ฐฝ์ด ๋œจ๊ฒŒ ๋œ๋‹ค.

์ด๋ ‡๊ฒŒ iframe tag๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ทจ์•ฝ์ ์ด ์กด์žฌํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ํ˜„์žฌ ํŽ˜์ด์ง€๋กœ ๋ถˆ๋Ÿฌ์™€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ

๋ฐ˜๋Œ€๋กœ ์ทจ์•ฝ์ ์ด ์กด์žฌํ•˜๋Š” ํŽ˜์ด์ง€์— ์ •๋ณด๋ฅผ ๋นผ๋‚ด๊ณ ์ž ํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค.

์Šคํฌ๋ฆฝํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ๊ณต๊ฒฉ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ๊ต‰์žฅํžˆ ๋‹ค์–‘ํ•ด์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

์ด๋ ‡๊ฒŒ LAB์„ ํ†ตํ•ด์„œ ๋ณด์—ฌ์ฃผ๊ณ ์ž ํ•˜๋Š” ๊ณต๊ฒฉ์˜ ํ๋ฆ„์„ ์ •๋ฆฌํ•ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋Š” ๊ฑฐ ๊ฐ™๋‹ค. ๐Ÿค—

Last updated