Stored XSS : LAB [2]

DATE : 2024/1/8

โ— Stored XSS into anchor href attribute with double quotes HTML-encoded

์ด๋ฒˆ LAB๋„ ์•ž์—์„œ ํ‘ผ Stored XSS : LAB [1]๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํŒ์—… ์ฐฝ์„ ๋„์šฐ๋Š” ๊ฒƒ์ด ์ตœ์ข… ๋ชฉํ‘œ์ด๋‹ค.

LAB์œผ๋กœ ์ ‘์†ํ•ด ๋ธ”๋กœ๊ทธ๋ฅผ ํ•˜๋‚˜ ์„ ํƒํ•ด์ค€๋‹ค!!

์ด์ „ LAB์„ ํ’€์—ˆ๋˜ ๋ฐฉ์‹๋Œ€๋กœ ๋Œ“๊ธ€ ์ฐฝ์— ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•ด๋ณด์•˜๋‹ค.

์ž‘์„ฑํ•œ ๋Œ“๊ธ€์€ Comments ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ

์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ™”๋ฉด์— ์ถœ๋ ฅ ๋˜๋Š” ๊ฑธ ๋ณด๋ฉด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž์—ด๋กœ ์ฒ˜๋ฆฌ๋œ ๊ฑฐ๋ผ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

์ด ํŽ˜์ด์ง€์˜ Response๋ฅผ ํ™•์ธํ•ด๋ดค๋”๋‹ˆ

ํƒœ๊ทธ๋ฅผ ์‚ฝ์ž…ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ angle bracket ๊ธฐํ˜ธ๊ฐ€ ๋Œ€์ฒด ๋ฌธ์ž๋กœ ์น˜ํ™˜๋˜๊ณ  ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค..!

ํ˜น์‹œ๋‚˜ ํ•ด์„œ Name์—๋„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ด๋ดค์ง€๋งŒ

Comment์™€ ๋™์ผํ•˜๊ฒŒ HTML entity ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด ํŠน์ • ๊ธฐํ˜ธ๊ฐ€ ์น˜ํ™˜ ๋˜๊ณ  ์žˆ์Œ์„ ํ™•์ธํ–ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋Š” ๊ฑด Comment & Name์—๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋œป์œผ๋กœ

๋‹ค๋ฅธ ํฌ์ธํŠธ๋ฅผ ์ฐพ์•„๋ด์•ผ ํ•œ๋‹ค.

๋Œ“๊ธ€ ์ฐฝ์—๋Š” Comment & Name์„ ์ œ์™ธํ•˜๊ณ  Email & Website๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์นธ์ด ์ œ๊ณต๋˜๋Š”๋ฐ

์ด ์ค‘์—์„œ๋„ Website์— ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด

Name์— ์ž…๋ ฅํ•œ ๊ฐ’์— ๋งํฌ๊ฐ€ ๊ฑธ๋ฆฌ๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

๋งํฌ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด Name์— ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๋‹ค ์˜ฌ๋ฆฌ๋ฉด

์ขŒ์ธก ํ•˜๋‹จ์—์„œ ์œ„์™€ ๊ฐ™์€ URL์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋•Œ URL ๋‚ด์šฉ์„ ํ™•์ธํ•ด๋ณด๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ Website์— ์ž…๋ ฅํ–ˆ๋˜ ๊ฐ’์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋Š”๋ฐ

์‚ฌ์šฉ์ž๊ฐ€ ์œ„์™€ ๊ฐ™์ด ๋Œ“๊ธ€์„ ์ž…๋ ฅํ–ˆ๋‹ค๊ณ  ํ•  ๋•Œ Packet ์ƒ์—์„œ ์ด ๋ถ€๋ถ„์„ ์ฐพ์•„๋ณด๋ฉด

Website์— ์ž…๋ ฅํ•œ ๊ฐ’์ด <a> tag์— href ์†์„ฑ์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฑธ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

์•ž์—์„œ ํ™•์ธํ–ˆ๋˜ ์ •๋ณด๋ฅผ ํ† ๋Œ€๋กœ ์ •๋ฆฌํ•ด๋ณด๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์€

Comment, Name, Email, Website์ด๊ณ  Comment, Name์€ <script> tag๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ์ด๋‹ค.

๊ทธ ์™€์ค‘์— Website์— ์ž…๋ ฅํ•œ ๋‚ด์šฉ์ด <a> tag - href ์†์„ฑ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

๋งŒ์•ฝ href ์†์„ฑ์— ํŒ์—… ์ฐฝ์„ ๋„์šฐ๊ธฐ ์œ„ํ•œ javascript ๋‚ด์šฉ์„ ์‚ฝ์ž…ํ•œ๋‹ค๋ฉด

<script> tag๋ฅผ ๋„ฃ์„ ํ•„์š” ์—†์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์„ ์ง€๋„ ๋ชจ๋ฅธ๋‹ค.

๊ณต๊ฒฉ์„ ์‹œ๋„ํ•ด๋ณด๊ธฐ ์œ„ํ•ด Website์— javascript ๋‚ด์šฉ์„ ์ž‘์„ฑํ•ด ์„œ๋ฒ„๋กœ ๋ณด๋‚ด ๋ณด์•˜๋‹ค.

์Šคํฌ๋ฆฝํŠธ๋ฅผ ํฌํ•จํ•˜๋Š” Website ๋‚ด์šฉ์„ ๋ณด๋‚ธ ๋’ค, ๋‹ค์‹œ ๋ธ”๋กœ๊ทธ๋กœ ๋“ค์–ด๊ฐ€ Name์„ ๋ˆ„๋ฅด๋ฉด

Name์— ๊ฑธ๋ฆฐ ๋งํฌ javascript:alert(1)์ด ์‹คํ–‰๋˜๋ฉด์„œ ํŒ์—… ์ฐฝ์ด ๋œจ๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ‘

Last updated