ํฐ์คํ ๋ฆฌ ๋ทฐ
์ค๋ช (๋ฒ์ญ)
์ฌ์ฉ์๊ฐ ์ ๊ณต ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ๊ฐ ํ์๋ ํ์ด์ง์ ์ปจํ ์คํธ์ ๋ง๊ฒ ์ฌ๋ฐ๋ฅด๊ฒ ์ด์ค์ผ์ดํ ๋์ด์ผ ํฉ๋๋ค.์ด ์์ค์ ์ด์ ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์๋ฌด๋ชฉํ : ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ alert() ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ JavaScript๋ฅผ ํ์ ํฉ๋๋ค.
Create timer๋ผ๋ ํผ์ ํด๋น ์ซ์๋ฅผ ์ ๋ ฅํ์ฌ ํ์ด๋จธ("์ด"๋จ์) ์๊ฐ ์ง๋ ํ ๋ค์ ๋ฆฌ๋ค์ด๋ ์ ํด์ฃผ๋ ํ์ด์ง๋ก ํ์ธ๋ฉ๋๋ค. URL์ด๋ Create timer ํผ์ ์ ์์ ์ธ ์คํฌ๋ฆฝํธ ๋ฌธ์ ์ฝ์ ํด๋ ์คํ์ด ๋์ง ์๊ณ ์์ต๋๋ค.
..
..
<body id="level4">
<img src="/static/logos/level4.png" />
<br>
<form action="" method="GET">
<input id="timer" name="timer" value="3">
<input id="button" type="submit" value="Create timer"> </form>
</form>
</body>
..
..
ํ์ด๋จธ ํผ์ ์ ๋ ฅํด๋ณด๋ฉด timer ๋ผ๋ ๋งค๊ฐ๋ณ์๊ฐ ์ฌ์ฉ๋๊ณ ์๋ ๊ฒ์ ํ์ธ
..
..
<br>
<img src="/static/loading.gif" onload="startTimer('{{ timer }}');" />
<br>
..
..
์์ค๋ฅผ ํ์ธํด๋ณด๋ฉด onload ์์ฑ์ ์ ์ํด๋ startTimer ํจ์๊ฐ ํธ์ถ๋๊ณ timer ์ธ์ ๊ฐ์ด ๋ค์ด๊ฐ ์คํํ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์ฆ
https://xss-game.appspot.com/level4/frame?timer=('{{ timer }}'); ํํ๋ก ์ ๋ฌ์ด ๋๋ ๊ฒ ๊ฐ์๋ฐ ์ ๊ฐ์ ๊ฒฝ๊ณ ์ฐฝ์ ๋์ฐ๊ธฐ ์ํด์ alert()๊ฐ ์ฝ์ ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฝ๋๋ฅผ ์กฐ๊ธ ์ ๋จ๊ณ์ ๋ค๋ฅด๊ฒ ์์ ์์ ์ด ํ์ํฉ๋๋ค.
์์ค์ value๋ 3์ผ๋ก ์ง์ ๋์ด ์์ผ๋ time=3 ํํ๋ก ์ ์์ํ๋๋๋ก ์์ฑํ ๊ทธ ์ดํ์ alert ์ฐฝ์ด ์ํ๋์ด์ผ ํ๋
" + " ๋ฅผ ํตํด alert๊ฐ ์ํ๋๋๋ก ์ฐ๊ฒฐํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
ํํธ
1.startTimer ํจ์๊ฐ ์ด๋ป๊ฒ ํธ์ถ ๋๋์ง ์ดํด๋ณด์ญ์์ค.
2. ๋ธ๋ผ์ฐ์ ๊ฐ ํ๊ทธ ์์ฑ์ ๊ตฌ๋ฌธ ๋ถ์ํ ๋ ๋จผ์ ํด๋น ๊ฐ์ HTML ๋์ฝ๋ฉํฉ๋๋ค. <foo bar = 'z'>๋ <foo bar = '& # x7a;'์ ๋์ผํฉ๋๋ค.
3. ์์ ๋ฐ์ดํ ( ')๋ฅผ ์ ๋ ฅํ๊ณ ์ค๋ฅ ์ฝ์์ ๋ณด์ญ์์ค.
Exploit Code
URL --> 3%27%29%2Balert%28%27XSS # URL์ ํตํด ์ ์ก์์๋ ์น์ด ์ดํดํ ์ ์๋๋ก ์ธ์ฝ๋ฉ ์ํ
Form --> 3')+alert('XSS
'CHALLENGE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
XSS-Game Level 6 (0) | 2020.12.01 |
---|---|
XSS-Game Level 5 (0) | 2020.11.30 |
XSS-Game Level 3 (0) | 2020.11.28 |
XSS-Game Level 2 (0) | 2020.11.27 |
XSS-Game Level 1 (2) | 2020.11.26 |