Reflected XSS : LAB [6]

DATE : 2024/1/14

๋‹จ ๋ช‡ ๊ฐœ์˜ SVG elements๋งŒ์ด ํ—ˆ์šฉ๋˜๋Š” ์ƒํ™ฉ์—์„œ reflected XSS ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•ด๋ณด์ž.

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

๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์†์— search parameter์™€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์žˆ์Œ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ (1) ์ž…๋ ฅํ•œ ๊ฐ’์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ๋˜๋ฉฐ ๊ทธ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์ด

(2) ์ฆ‰์‹œ ์‘๋‹ต์— ํฌํ•จ๋˜์–ด ์ถœ๋ ฅ ๋˜๋Š” ๊ตฌ์กฐ์ž„์œผ๋กœ Reflected XSS๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ „์ œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค.

search parameter๊ฐ€ Response์— ์ฆ‰์‹œ ๋ฐ˜์˜๋˜๋Š” ๊ฒŒ ๋งž๋Š” ์ง€ ํ™•์‹คํ•˜๊ฒŒ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด

repeater๋กœ packet์„ ๊ฐ€์ ธ์™€ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์ˆ˜์ •ํ•ด๋ณด๋ฉด ๋œ๋‹ค.

์œ„์™€ ๊ฐ™์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ˆ˜์ •ํ•œ ๊ฒฝ์šฐ,

hanhxx -> hanhxx<>

Response์— ๊ณง ๋ฐ”๋กœ ์ˆ˜์ •ํ•œ ๊ฐ’์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ๊ฐ’์„ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์‘๋‹ต ํŽ˜์ด์ง€์— ์ฆ‰์‹œ ์ถœ๋ ฅ ์‹œํ‚ค๊ณ  ์žˆ๋Š” ๊ตฌ์กฐ์ž„์„ ํ™•์ธํ•œ ์…ˆ์ด๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ํƒœ๊ทธ๋ฅผ ์ฐพ์•„๋ณด์ž.

์• ์ดˆ์— LAB์—์„œ SVG elements๋กœ ํƒœ๊ทธ๊ฐ€ ์ œํ•œ๋œ๋‹ค๊ณ  ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—

<p> tag๋ฅผ ๋„ฃ์œผ๋ฉด "Tag is not allowed" ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฑด ๊ทธ๋ฆฌ ๋†€๋ž์ง€ ์•Š์€ ๊ฒฐ๊ณผ์ด๋‹ค.

์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํƒœ๊ทธ๋ฅผ ๋ชจ๋‘ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด tag list๋ฅผ ๋„ฃ๊ณ  intruder๋ฅผ ์‹คํ–‰ํ•˜๋ฉด

๋‹ค์Œ๊ณผ ๊ฐ™์ด SVG elements์ธ svg, title, image, animatetransform tag๋งŒ์ด

ํ—ˆ์šฉ๋˜๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ์ค‘ ์•„๋ฌด ํƒœ๊ทธ๋‚˜ ํ™œ์šฉํ•ด์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•˜๋ฉด ๋˜๊ฒ ๊ฑฐ๋‹ˆ! ํ–ˆ์ง€๋งŒ

ํ—ˆ์šฉ๋˜๋Š” ํƒœ๊ทธ๊ฐ€ ์ œํ•œ๋˜๋Š” ๋™์‹œ์—, ์†์„ฑ & event handler ๋˜ํ•œ ์ œํ•œ๋˜๊ณ  ์žˆ๋Š” ๋“ฏํ•˜๋‹ค.

์ด๋ฒˆ์—” ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” event handler๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด intruder๋ฅผ ์‹คํ–‰ํ•ด๋ณด์•˜๋‹ค.

๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ด๋ณด๋‹ˆ, onbegin๋งŒ์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ์ž„์„ ํŒŒ์•…ํ–ˆ๋‹ค.

onbegin์€ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์–ด๋Š ์‹œ์ ์— ์‹œ์ž‘ํ•  ๊ฒƒ์ธ์ง€ ์„ค์ •ํ•˜๋Š” event handler๋กœ

๊ธฐ๋ณธ ๊ฐ’์€ 0์ดˆ(s) ์ด๊ณ  ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ˜•ํƒœ๋กœ ๊ฐ’์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ํŒ์—… ์ฐฝ์„ ๋„์šฐ๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๊ธฐ ๋•Œ๋ฌธ์— onbegin์— ์‹œ๊ฐ„ ๋Œ€์‹  alert()๋ฅผ ์ž‘์„ฑํ•  ๊ฒƒ์ด๋‹ค.

<svg> tag ์•ˆ์— <animatetransform> tag๋ฅผ ๋„ฃ์–ด์ฃผ๊ณ  onbegin event handler๋ฅผ ๋ถ€์—ฌํ•ด์ค€๋‹ค.

<svg><animatetransform onbegin=alert(1)>

search parameter์— ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋„ฃ๊ณ  ์ „๋‹ฌํ•˜๋ฉด

Last updated