2 - 0 - 2. XSS - 1 ์ทจ์ฝ์ ๋ถ์ ์ค์ต
# XSS - 1 ์ทจ์ฝ์ ๋ถ์ ์ค์ต
1. ๋ฌธ์ ์ ๋ณด ํ์ธ ๋ฐ ๋ฌธ์ ํ์ผ ๋ค์ด๋ก๋
2. ์ ์ ์ ๋ณด ๋ณด๊ธฐ์์ ์๋ด๋ http://host3.dreamhack.games:22929/ ๋งํฌ๋ก ์ด๋
3. ๋ฌธ์ ํ์ผ ์ ์ฝ๋ ๋ถ์
+ << Line 16 ~ 39 >>
: read_url ํจ์ ์คํ
--> driver.get('http://127.0.0.1:8000/') ์ฝ๋๋ฅผ ํตํด ๋ก์ปฌํธ์คํธ ํ๊ฒฝ์์ ์นํ์ด์ง์ ์ ์
--> driver.add_cookie(cookie) ์ฝ๋๋ฅผ ํตํด ์ ์ํ ์น ํ์ด์ง์ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์์จ cookie ์ถ๊ฐ
--> driver.get(url) ์ฝ๋๋ฅผ ํตํด ๋งค๊ฐ๋ณ์๋ก ๋ฐ์์จ xss ๊ฐ์ ์ด์ฉํ์ฌ xss ํ์ด์ง ์ ์
+ << Line 58 ~ 67 >>
: POSTํ๋ ๊ณผ์ ์์ check_xss ํจ์ ์คํ
: check_xss ํจ์ --> read_url ํจ์๋ฅผ ๋์์์ผ flag ์ฟ ํค ์์ฑ
4. ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ๋ถ์
+ flag ํ์ด์ง๋ input ํ๊ทธ๋ฅผ ํตํด ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์กํจ
--> memo ํ์ด์ง๋ก ํ์ทจํ ์ด์ฉ์์ ์ฟ ํค๋ฅผ ๋ณด๋ด ์ถ๋ ฅํ๋ฉด FLAG๋ฅผ ์ป์ ์ ์์
+ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ธฐ ์ํด <script> ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด XSS ๊ณต๊ฒฉ์์ ํ์ํ ๋ค์ํ ๋์ ์ํ ๊ฐ๋ฅ
+ ์ฝ๋์ ์ ์ถ๋ ฅ ๊ณผ์ ์์ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ณ๋์ ๊ฒ์ฆ ๊ณผ์ ์ ์งํํ์ง ์์์ ์ด์ฉ
--> ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์ฝ๋ ๊ทธ๋๋ก๋ฅผ ์คํ
+ ์ถ๊ฐ์ ์ผ๋ก ์๋์ ์์ฑ๊ฐ์ ์ด์ฉ
location.herf | document.cookie |
URL ๋ฐํ ๋ฐ ์ ๋ฐ์ดํธํ๋ ์์ฑ๊ฐ | ํด๋น ํ์ด์ง์์ ์ฌ์ฉํ๋ ์ฟ ํค๋ฅผ ์ฝ๊ณ ์ฐ๋ ์์ฑ๊ฐ |
5. ๋ค์ flag ํ์ด์ง๋ก ๋์๊ฐ ๋น์นธ์ <script> location.href=“/memo?memo=”+document.cookie; </script> ์ ๋ ฅ
+ <script> location.href=“/memo?memo=”+document.cookie; </script>
--> memo ํ์ด์ง์ ์์ฑํ ์ฟ ํค๊ฐ ์ถ๋ ฅ
6. good์ด ์ถ๋ ฅ๋ ํ ๋ค์ memo ํ์ด์ง๋ก ์ ์ --> FLAG ๊ฐ ํ์ธ ๊ฐ๋ฅ