DOM XSS : LAB [8]
DATE : 2024/1/15
โStored DOM XSS
์ด๋ฒ LAB์๋ ๋๊ธ์ XSS ์ทจ์ฝ์ ์ด ์กด์ฌํ๋ค๊ณ ํ๋ค! ๐ฏ
LAB์ผ๋ก ์ ์ํด ๋ธ๋ก๊ทธ๋ฅผ ํ๋ ์ ํํด์ฃผ๋ฉด ํ๋จ์ ์์นํด์๋ ๋๊ธ ์์ฑ form์ ๋ณผ ์ ์๋๋ฐ
์ฌ๊ธฐ๊ฐ ๋ฐ๋ก ์ด๋ฒ LAB์ ํ๊ธฐ ์ํ ๊ณต๊ฒฉ ํฌ์ธํธ ๋์๊ฒ ๋ค.
XSS ์ทจ์ฝ์ ์ด ์กด์ฌํ๋ค๋ ์ ๋ณด ๋ง๊ณ ๋ ์๋ ๊ฒ ์๊ธฐ ๋๋ฌธ์ ์ ๋ณด ์์ง์ ์ํด ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ด๋ณด์๋ค.
์ด ํ์ด๋ฐ์ ์ ์ packet์ ํ์ธํด๋ณด๋๋ก ํ์.
์์ ์ฝ๋๋ ๋ธ๋ก๊ทธ๋ฅผ ํ๋ ์์ฒญํ์ ๋, ์๋ฒ๊ฐ ๋ณด๋ด์ค ์๋ต ์์ ํฌํจ๋ ์ฝ๋์ด๋ค.
์ฌ์ฉ์๋ค์ด ๋ฌ์๋ ๋๊ธ์ด ์ถ๋ ฅ๋ ์์น์ ์ด ์ฝ๋๋ง ์ ํ์ ธ์์๋ค.
๋๊ฐ ์ฝ๋๋ฅผ ๋ณด๊ณ ๋ด์ฉ์ ์ ์ถํด๋ณด์๋ฉด "/post/comment ๊ฒฝ๋ก์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ๋ค๊ฐ ํ์ด์ง์
๋ก๋ํด!" ๋ผ๋ ๋๋์ธ ๊ฑฐ ๊ฐ์๋ฐ
์ค์ ๋ก ์ด๋ค ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊ฒ ๋๋ ์ง packet์ ํ์ธํด๋ณด๋ฉด
/post/comment์ ๋ธ๋ก๊ทธ ์์ด๋๋ฅผ ์ ๋ฌํ๋ฉด ํด๋น ๋ธ๋ก๊ทธ์ ์์ฑ๋ ๋๊ธ ์ ๋ณด๋ฅผ json ํํ๋ก
์ ๋ฌ ๋ฐ๋ค๋ ๊ฑธ ์ ์ ์๋ค.
์ด๋ ์์์ ์์ฑํ๋ ๋๊ธ ์ ๋ณด๋ฅผ ํ์ธํด๋ณด๋ฉด
<script> tag์ ์ฌ์ฉํ slash์ back slash๊ฐ ๋ถ์ด escape ๋๊ณ ์๋ค..! ๐
์ด๋ฅผ ๋ฐํ์ผ๋ก ์ฌ๋์ฌ๋ฅผ ์ฌ์ฉํ๋ ๋ซํ ํ๊ทธ๋ ์ฌ์ฉํ์ง ์๋ ๊ฒ ์ข๋ค๊ณ ํ๋จํ๋ค.
๊ทธ๋ฐ๋ฐ ๋ญ๊ฐ ์ด์ํ๊ฒ,, ๋ธ๋ผ์ฐ์ ์์์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ดค๋๋ angle brackets์ ์ฌ์ฉํ
์ฒซ ๋ฒ์งธ ํ๊ทธ(<script>)๋ ํ๋ฉด์ ๋์ค๋๋ฐ ๋ ๋ฒ์งธ ํ๊ทธ(</ script>)๋ ๋ณด์ด์ง ์๋๋ค.
์ฌ๋์ฌ๋ escape ๋๋ค๊ณ ํด๋ ํ๊ทธ๋ ํ๋ฉด์ ๋์ฌ ๋ฒ๋ ํ๋ฐ ๋ญ๊ฐ ์ด์ํ๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ฒ์ ์ฌ๋์ฌ๋ฅผ ํฌํจํ์ง ์๋ <img> tag๋ฅผ ์์ฑํด๋ณด์.
์์ ๊ฐ์ด ์๋ก์ด ๋๊ธ์ ์์ฑํ ๋ค ๋ธ๋ก๊ทธ์ ๋ค์ ์ ์ํ๋ฉด
๋ณ ๋ค๋ฅธ ๋ฌธ์ ์์ด ํ๊ทธ๊ฐ ์ถ๋ ฅ ๋๋ ๊ฑธ ๋ณผ ์ ์๋ค.
์ด๋ ํ๊ทธ๊ฐ ์ถ๋ ฅ ๋๋ค๋ ๊ฑด,
์๋ง HTML entity ์ฒ๋ฆฌ๋์ด HTML tag๊ฐ ์๋ ๋ฌธ์์ด๋ก ์ทจ๊ธ๋๊ณ ์์์ ๋ปํ๋ค.
์ฒซ ๋ฒ์งธ ๋๊ธ๊ณผ ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํด๋ณด๋ฉด ํ๋์ angle brackets์ผ๋ก ์ด๋ฃจ์ด์ง ๊ฒฝ์ฐ์๋
์๋ฆฌ๋ ๋ด์ฉ ์์ด ๋๊ธ์ด ๋ชจ๋ ์ถ๋ ฅ ๋๋ ๊ฑธ ํ์ธํ ์ ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด angle brackets์ ๋ ๊ฐ ์ด์ ์ฌ์ฉํ๋ ๊ฒ ๋ฌธ์ ์ธ ๊ฑธ๊น??
ํ์ธํด๋ณด๊ธฐ ์ํด < > ๊ธฐํธ๋ฅผ ๋ ๊ฐ ํฌํจํ๋ ๋๊ธ์ ๋ฌ์๋ณด์๋ค.
๋ธ๋ผ์ฐ์ ์์ ๋๊ธ์ ํ์ธํด๋ณด๋..!
์ฒซ ๋ฒ์งธ angle brackets์ ํ๋ฉด์ ์ถ๋ ฅ ๋๋ ๋ฐ ๋ ๋ฒ์งธ angle brackets์ ํ์ ๋ ์์ด ์ฌ๋ผ์ ธ๋ฒ๋ ธ๋ค.
์ด๋ก์จ ํ์คํด์ง ์ฌ์ค..!
ํ์ฌ ๋๊ธ ๊ธฐ๋ฅ์์๋ ์ฒซ ๋ฒ์งธ angle brackets๋ง์ HTML entity ์ฒ๋ฆฌํ๊ณ
๋ ๋ฒ์งธ๋ถํฐ๋ ์ด๋ฅผ ์ ์ฉํ์ง ์๊ณ ์๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๋ ์๋ฏธ ์๋ angle brackets์ ํ๋ ๋ถ์ด๊ณ ๋ ๋ฒ์งธ ํ๊ทธ์
์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด ๋ฃ์ผ๋ฉด ๋๋ค.
<img> tag์ alert()๋ฅผ ์์ฑํ ์คํฌ๋ฆฝํธ๋ฅผ Comment์ ์ฝ์ ํด์ค๋ค.
๋๊ธ์ ๋ฑ๋กํ ๋ค์, ๋ค์ ๋ธ๋ก๊ทธ๋ก ๋์์ค๋ฉด
(1) ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋๊ธ์ ๊ฐ์ ธ์ Response์ ๋ฃ๋ ๊ณผ์ ์์ ์คํฌ๋ฆฝํธ๊ฐ ๋ฑ์ฅํ๊ฒ ๋๊ณ
(2) ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐ๊ฒฌํ ๋ธ๋ผ์ฐ์ ๊ฐ alert()๋ฅผ ์คํํ๋ฉด์
ํ์ ์ฐฝ์ด ๋จ๋ ๊ฑธ ํ์ธํ ์ ์์ ๊ฒ์ด๋ค! ๐
Last updated