Reflected XSS : LAB [7]
DATE : 2024/1/15
โReflected XSS into a JavaScript string with single quote and backslash escaped
์ด๋ฒ์ ๋ค๋ค๋ณผ Reflected XSS LAB์์๋ ์์ ๋ฐ์ดํ์ ์ญ์ฌ๋์ฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ฌ๋ก์ด๋ค.
์ผ๋จ ๋ธ๋ก๊ทธ ๊ฒ์ ๊ธฐ๋ฅ์ด ์ด๋ป๊ฒ ๊ตฌํ๋์ด ์๋์ง ํ์ธํ๊ธฐ ์ํด
hanhxx๋ฅผ ๊ฒ์ ๋ฐ์ ์ ๋ ฅํด๋ณด์๋ค. ์ด๋ response packet์ ๋ณด๋ฉด
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ด JavaScript์์ ์ฌ์ฉ ๋๋ ๊ฑธ ์ ์ ์๋ค.
LAB์์๋ ์์ ๋ฐ์ดํ์ ์ญ์ฌ๋์ฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ search parameter์
angle brackets, double quote, single quote๋ฅผ ์ ๋ ฅํด๋ณด๋ฉด
์์ ๋ฐ์ดํ single quote๋ง ์ญ ์ฌ๋์ฌ๊ฐ ๋ถ์ผ๋ฉด์ escape ๋๋ ๊ฑธ ๋ณผ ์ ์๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํ ์ํค๊ธฐ ์ํด์ <script> tag๋ฅผ ์ฝ์ ํ ์ ์๋ค!
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ด ์ ์ผ ๋จผ์ ์ฌ์ฉ๋๋ ์์น๋ searchTerms ๋ณ์์ ํ ๋นํ๋ ๋ถ๋ถ์ผ๋ก
์์ ์๋<script> tag๋ฅผ ์ด์ฉํด ๋ง๊ฐ ํ๊ทธ๋ฅผ ๋ฃ๊ฒ ๋๋ฉด __INPUT__์ ๊ฐ์ธ๋ ๋ฐ์ดํ์์ ๋ฒ์ด๋ ์ ์๋ค.
</script>๋ฅผ ๊ฒ์ ๋ฐ์ ์ ๋ ฅํ๊ฒ ๋๋ฉด ์์ ๊ฐ์ด ์ฝ๋๊ฐ ์์ฑ๋๋ฉด์
';document.write();๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์์ด๋ก ํ๋ฉด์ ์ถ๋ ฅ๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๊ฑด </script>๋ฅผ ๋ฃ์์ผ๋ก์จ ๋ฐ์ดํ์์ ๋ฒ์ด๋
์๋ก์ด <script> tag๋ฅผ ๋ฃ์ผ๋ฉด ์ํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ์ ์๊ฒ ๋๋ค๋ ๊ฒ! ๐ก
์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ธฐ ์ํด ์๋ก์ด ํ๊ทธ๋ฅผ ์ถ๊ฐํด alert(1)์ ๋ฃ์ด์ฃผ๋ฉด
๋ณ์ searchTerms์ ์ ์ํ๋ <script> tag์ ์ด์ด alert(1)์ ํธ์ถํ๊ณ ์๋ <script> tag๊ฐ ์์ฑ๋๋ค.
๋ง์ง๋ง์ผ๋ก ๋ธ๋ผ์ฐ์ ์์์ ํ์ ์ฐฝ์ ํ์ธํ๊ธฐ ์ํด search parameter์
์์ ๊ฐ์ด ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํ๊ฒ ๋๋ฉด
์ฑ๊ณต์ ์ผ๋ก ํ์ ์ฐฝ์ด ๋ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค. ๐
Last updated