Reflected XSS : LAB [2]
DATE : 2023/1/3
โReflected XSS into attribute with angle brackets HTML-encoded

์ด๋ฒ LAB๋ ์์ ํ์ด๋ณธ Reflected XSS : LAB [1]๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก Reflected XSS์ ๊ดํ ๋ฌธ์ ์ด๋ค.
ํ์ด์ง ์ค์์ ์์นํ ๊ฒ์ ๊ธฐ๋ฅ์ ํ์ฉํด ํ์ ์ฐฝ์ ๋์ฐ๋ฉด ๋๋ค.
์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํ๊ธฐ ์ , ํ์ด์ง๊ฐ ์ด๋ป๊ฒ ๋์ํ๋ ์ง ํ์ ํ๊ธฐ ์ํด ๊ฐ๋จํ ํค์๋๋ฅผ ๊ฒ์ํด๋ดค๋ค.

์ฌ์ฉ์๊ฐ "hello"๋ฅผ ์ ๋ ฅํ๋ ๊ฒฝ์ฐ ๊ฒ์ ๋ฐ ์๋จ์
0 search results for 'hello'
๋ฌธ๊ตฌ๋ฅผ ์ถ๋ ฅํด์ฃผ๋ ๊ฑธ ๋ณผ ์ ์๋ค.

์ด๋ Packet์ ํ์ธํด๋ณด๋ฉด ์ด์ LAB๊ณผ ๋ฌ๋ผ์ง ์ ์ ๋์น์ฑ ์ ์์ ๊ฒ์ด๋ค. ๐
์๋๋ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ ๊ฒ์ ๋ด์ฉ์ด ๊ฒ์ ๋ฐ value๋ก ๋ค์ด๊ฐ ์๋ ๊ฑธ ๋ณผ ์ ์๋ค.
<input type=text placeholder='Search the blog...' name='search' value='hello'>
๊ทธ๋์ ์ฌ์ฉ์๊ฐ ๊ฒ์์ ํ ๋ค์๋ ๊ฒ์ ๋ฐ์ ์ ๋ ฅํ ๊ฐ์ด ๋จ์์๋ ๊ฒ.
์ด๋ฒ ๋ฌธ์ ๋ ์ด ๋ถ๋ถ์ ์ด์ฉํด ํ์ ์ฐฝ์ ๋์ธ ๊ฒ์ด๋ค.

๋ฌธ์ ์ค๋ช ์ ์ฝ์ด๋ณด๋ฉด ์๊ฒ ์ง๋ง ์ด๋ฒ ๋ฌธ์ ๋ angle Bracket, ์ฆ ํ๊ทธ๋ฅผ ์ด๊ณ ๋ซ๋ ๊ธฐํธ < > ๊ฐ
๋์ฒด ๋ฌธ์๋ก ์นํ๋๊ธฐ ๋๋ฌธ์ ์ง์ <script> tag๋ฅผ ์ฝ์ ํ ์ ์๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ ์ฌ์ฉํ๋ ์์น์
์ ์ ํ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฃ์ด ํ์ ์ฐฝ์ ๋์ฐ๋ ์ ๋ต์ ์ ํํ ๊ฒ!
<input type=text placeholder="Search the blog..." name="search" value="___">
ํ์ฌ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ value ์์ฑ์ผ๋ก ๋ค์ด๊ฐ๋ฉด์ ๋ฐ์ดํ์ ๋๋ฌ ์์ด๊ฒ ๋๋ค.
๋ฐ๋ผ์ ๋ฐ์ดํ๋ฅผ ๋ง๊ฐํ์ง ์๊ณ ์คํฌ๋ฆฝํธ๋ฅผ ๊ทธ๋๋ก ์์ฑํ๋ฉด ๋ฌธ์์ด์ด ๋์ด๋ฒ๋ฆฌ๋ ์ฌํ๊ฐ ๋ฐ์ํ๋ค.
์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฐ์ดํ๋ก ์ง์ ๋ง์ถฐ ์ฃผ๊ณ HTML tag์์ ์ ์ฉํ ์ ์๋ ์์ฑ์
์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด์ค ๊ฒ์ด๋ค.
/?search=" onclick="alert(1)
> <input type=text ~~~ value="___" >
> <input type=text ~~~ value="" onclick="alert(1)" >
value ๋น์นธ์ search parameter ๊ฐ์ด ๋ค์ด๊ฐ๊ฒ ๋๋ฉด์ ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ง๋ค์ด์ง๋ ์๋ต ํ์ด์ง์๋
input tag๋ฅผ ํด๋ฆญํ๋ฉด ํ์ ์ฐฝ์ด ๋จ๋ ์คํฌ๋ฆฝํธ๊ฐ ์ ์ฉ๋๋ค.
(onclick ๋ง๊ณ ๋ onmouseover ๋ฑ ๋ค๋ฅธ ์ด๋ฒคํธ ์์ฑ์ ์ฌ์ฉํ ์๋ ์๋ค.)

LAB ํ๋ฉด์ผ๋ก ๋ค์ ๋์์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํด๋ณด์.

์ฝ์ ํ ์คํฌ๋ฆฝํธ๊ฐ ๋ฐ๋ก ์๋ต ํ์ด์ง์ ์ ํ์ ธ ์๋ ๊ฑธ ๋ณด๋ฉด Reflected XSS์์ ํ์ ํ ์ ์์ ๊ฒ์ด๋ค.

์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํ ํ ์ฌ์ฉ์๊ฐ ๊ฒ์ ๋ฐ๋ฅผ ํด๋ฆญํ๊ฒ ๋๋ฉด <input> tag์ ์ ์ด๋ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋์ด
ํ์ ์ฐฝ์ด ๋จ๋ ๊ฑธ ๋ณผ ์ ์์ ๊ฒ์ด๋ค.
๋ณดํต์ "์คํฌ๋ฆฝํธ ์ฝ์ ํ๋ค"๊ณ ํ๋ฉด <script> tag๋ฅผ ๋ ์ฌ๋ฆฌ๋ค ๋ณด๋
๊ทธ ์ธ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํ ์ ์๋ ๋ค์ํ ์ํฉ์ด ์์์ ๋ณด์ฌ์ฃผ๋ ์ข์ ์์์๋ค.
โ๋ฌธ์ ์์๋ onmouseover ์์ฑ์ผ๋ก ํ์ ์ฐฝ์ ๋์์ผ solved ์ฒ๋ฆฌํด์ค๋ค.
Last updated