XSS (ํฌ๋ก์ค ์ฌ์ดํธ ์คํฌ๋ฆฝํ )
์ด๋ฒ ๋ฉด์ ์์ XSS๊ฐ ๋ฌด์์ธ์ง ์ค๋ช ํด ๋ฌ๋ผ๋ ์ง๋ฌธ์ ๋ฐ๊ณ ๋ณด์์ ์ด์๋ผ๊ณ ๋ง ์๊ณ ์์๋ ๋ถ๋ถ์ ๋ฐ์ฑํ๋ฉฐ ๊ธฐ๋กํด๋ณธ๋ค.๐
XSS๋ ?
์น ์์์ ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ์ทจ์ฝ์ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ์ด๋ค. ์ ์์ ์ธ ์ฌ์ฉ์๊ฐ ๊ณต๊ฒฉํ๋ ค๋ ์ฌ์ดํธ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฃ๋ ๊ธฐ๋ฒ์ ๋งํ๋ฉฐ ๊ณต๊ฒฉ์ ์ฑ๊ณตํ๊ฒ ๋ ๊ฒฝ์ฐ ์ฌ์ดํธ์ ์ ์ํ ์ฌ์ฉ์๋ ์ฝ์ ๋ ์ฝ๋๋ฅผ ์คํํ๊ฒ ๋๊ณ , ์๋์น ์์ ํ๋์ ์ํ์ํค๊ฑฐ๋ ์ฟ ํค, ์ธ์ ํ ํฐ ๋ฑ์ ์ ๋ณด๋ฅผ ํ์ทจํ๋ค.
๊ณต๊ฒฉ ๋ฐฉ๋ฒ โ๏ธ
Stored XSS (์ ์ฅํ ํฌ๋ก์ค ์ฌ์ดํธ ์คํฌ๋ฆฝํ )
Stored Xss ๊ณต๊ฒฉ์ ๋ณด์์ด ์ทจ์ฝํ ์๋ฒ์ ์ ์ฑ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ฅํ์ฌ ๋ฐ์์ํจ๋ค.
์๋ฒ์ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๊ฒ ์ง๋ง ๋ํ์ ์ธ ๋ฐฉ๋ฒ์ ๊ฒ์ํ, ์ฌ์ฉ์ ํ๋กํ, ๋๊ธ ๋ฑ์ ํตํด ์๋ฒ์ ์ ์ฅํ๋ค.
์์)
ํด๋น ์ฌ์ดํธ๋ xss ๊ณต๊ฒฉ์ ํด๋ณผ ์ ์๋๋ก ๊ฐ๋จํ๊ฒ ํ ์คํธ ํ๋ผ๊ณ ๋ง๋ ์ฌ์ดํธ ์ธ๊ฒ ๊ฐ๋ค.
๋ ๋ฒจ2 ๋ฌธ์ ๋ฅผ ๋ณด๋ฉด ๊ธ์ ์ ๋ ฅํ๋ฉด ๋ด๊ฐ ์ด๊ธ์ด ์๋ฒ์ ์ ์ฅ ๋๋ ํ์์ด๋ค. ์ด๊ฑด Stored XSS ์ ์กฐ๊ฑด์ธ ์๋ฒ์ ๋ด๊ฐ ์ด ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ฅํ ์๋ ์๋ค๋ ๋ป์ด๋ค.
<script>alert('1')</script> ๋ฅผ ์ ๋ ฅํ๊ณ Share status! ๋ฅผ ๋๋ฌ๋ดค์ง๋ง ์๋ฌด๊ฒ๋ ๋์ค์ง์๋๋ค. ์๋ฒ์ script ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋๊ฒ์ ๋ง์๋์ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
๊ธฐ์กด์ ์๋ ๊ฒ์๊ธ์ ์ดํด๋ณด๋ฉด ํ ์คํธ ์์์ htmlํ๊ทธ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ฒ์ ํ์ธํ ์ ์๋ค. ์ฆ html ํ๊ทธ๋ฅผ ์๋ฒ์ ์ ์ฅํ ์ ์๋ค๋๊ฑด๋ฐ img ํ๊ทธ๋ฅผ ์ด์ฉํ๋ฉด onerror ์ด๋ฒคํธ๋ฅผ ํตํด ๋ด ์คํฌ๋ฆฝํธ๋ฅผ ์๋ฒ์ ์ ์ฅํ ์ ์๋ค!
Reflected XSS (๋ฐ์ฌํ ํฌ๋ก์ค ์ฌ์ดํธ ์คํฌ๋ฆฝํ )
Reflected XSS๋ ํน์ ํ๋ผ๋ฏธํฐ ๊ฐ์ ํตํด์ ๊ณต๊ฒฉํ๋ ๋ฐฉ์์ผ๋ก ๊ฒ์, ์๋ฌ๋ฉ์์ง, URL ๋ฑ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ด ํ์ด์ง์ ๋ฐ์ฌ๋์ด ๋ ธ์ถ๋๋ ๊ฒฝ์ฐ ํด๋น URL์ ๊ณต๊ฒฉ์ฝ๋๋ฅผ ํฌํจ์์ผ ํผ์ฑ๋ฉ์ผ ๋ฑ์ ํตํ์ฌ ์ ๋ฌํ๋ ๋ฐฉ์์ผ๋ก ๊ณต๊ฒฉํฉ๋๋ค.
input์ฐฝ์ ์ ๋ ฅํ ๊ฐ์ด URL์ ๊ทธ๋๋ก ์ ์ฉ๋๋ ๋ชจ์ต์ ๋ณผ ์์๋ค. ์ด ํ๊ทธ์ ์ ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํ์ฌ URL์ ๋ณต์ฌํ ํ ๋ฉ์ผ๋ก ๋ณด๋ด๊ฒ ๋๋ฉด ๋งํฌ๋ฅผ ํด๋ฆญ ์ ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋๊ฒ ๋๋ค.
alert ์คํฌ๋ฆฝํธ๋ฅผ ๋ฃ์ ํ ์คํธ์ฌ์ดํธ : https://xss-game.appspot.com/level1/frame?query=%3Cscript%3Ealert(%27%EC%BF%A0%ED%82%A4%ED%83%88%EC%B7%A8%27)%3C/script%3E
๋ง์ฝ ์ ๋งํฌ๊ฐ ์ ์์ ์คํฌ๋ฆฝํธ๊ฐ ์๋ ์ฝ๋์๊ณ ๋ฉ์ผ๋ก ๋ณด๋ด์ก์๋ ํด๋ฆญํ๋ค๋ฉด ๋ด ๋ธ๋ผ์ฐ์ ์ ์ฟ ํค๋ฅผ ํ์ทจ๋นํ ์ ์๋ค.
Dom Based XSS (๋ ๊ธฐ๋ฐ ํฌ๋ก์ค ์ฌ์ดํธ ์คํฌ๋ฆฝํ )
DOM ๊ธฐ๋ฐ XSS ๊ณต๊ฒฉ์ ๋ณด์์ ์ทจ์ฝํ JavaScript ์ฝ๋๋ก DOM ๊ฐ์ฒด๋ฅผ ์ ์ดํ๋ ๊ณผ์ ์์ ๋ฐ์. ์ฆ http ์๋ต ๊ฐ์๋ ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋์ง ์์ ์๋ฒ์ธก์ด ์๋ ๋ธ๋ผ์ฐ์ ์์ ๋ฐ์ํ๋ ๊ณต๊ฒฉ์ด๋ค.
ํด๋น ๊ณต๊ฒฉ๋ ๋์ผํ๊ฒ ํผ์ฑ๋ฉ์ผ ๋ฑ์ ํตํด ์ ๋ฌ๋ ๋งํฌ๋ฅผ ํด๋ฆญ ์ ์คํํ๊ฒ ๋๋๋ฐ ์์ ๋ฐ์ฌํ XSS์ ์กฐ๊ธ ๋ค๋ฅด๋ค.
๋ฐ์ฌํ XSS : URL์ฃผ์์ ํจ๊ป ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ ์๋ฒ์ ์ ๋ฌ -> ์๋ฒ๋ URL์ ๋ด๊น ์คํฌ๋ฆฝํธ ๋ฌธ์์ด์ ์ถ์ถ -> ์๋ฒ์์ ์๋ตํ HTML ๋ฌธ์์ ์ ์ฑ์คํฌ๋ฆฝํธ๋ฅผ ๊ทธ๋๋ก ๋ด์ ๋น์ ์ HTML์ ์ ๋ฌํด์ค.
๋ ๊ธฐ๋ฐ XSS : ์๋ฒ๋ก ๋ถํฐ ์ ์์ ์ธ HTML ๋ฌธ์ ์ ๋ฌ๋ฐ์ -> ๋ธ๋ผ์ฐ์ ๊ฐ HTML ํ์ฑ -> ํ์ฑ ์ค URL์ ๋ด๊ธด ์คํฌ๋ฆฝํธ๋ฅผ ์ถ์ถ -> ์ ์ฑ ์คํฌ๋ฆฝํธ ์คํ
ํด๋น ๊ณต๊ฒฉ์ ์ฐธ๊ณ ํ ๋งํ ์์ ์ฌ์ดํธ๋ฅผ ์ฐพ๊ฒ๋๋ฉด ์ถ๊ฐํ๊ฒ ๋ค.
๋์ ๋ฐฉ์ ๐ ๏ธ
1. ์ ๋ ฅ๊ฐ ๊ฒ์ฆ
์ ๋ ฅ๋ฐ์ดํฐ์ ๊ธธ์ด๋ฅผ ์ ํํ๊ฑฐ๋ ์ง์ ๋ ๋ฌธ์๋๋ ํ์์ผ๋ก ์ ๋ ฅ๋์๋์ง ํ์ธํ๊ณ ๊ท์น์ ๋ฒ์ด๋ ์ ๋ ฅ๊ฐ๋ค์ ๋ฌดํจํ ์ํค๋ ๋ฐฉ๋ฒ.
2. ์ถ๋ ฅ๊ฐ ๊ฒ์ฆ
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ด ์ถ๋ ฅ๋ ๋ <, >, & ๋ฑ๋ฑ ๋ด์ฉ์ ์๋ HTML, ๋๋ ์คํฌ๋ฆฝํธ ๊ตฌ๋ฌธ์ผ๋ก ํด์๋ ๊ฐ๋ฅ์ฑ์ด ์๋ ๊ฐ๋ค์ HTML entitycode ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ.
3. ๋ณด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ
AntiXSS, OWASP ESAPI ๋ฑ XSS ์ทจ์ฝ์ ์ ์๋ฐฉํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ ํ์ฉํ๋ค.
XSS๊ณต๊ฒฉ ๋ฐฉ์ง 7๊ณ๋ช
- ํ์ฉ๋ ์์น๊ฐ ์๋ ๊ณณ์ ์ ๋ขฐํ ์ ์๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ๋ ๊ฒ์ ํ์ฉํ์ง ์๋๋ค.
- ์ ๋ขฐํ ์ ์๋ ๋ฐ์ดํฐ๋ ๊ฒ์ฆ์ ํ์ฌ๋ผ
- HTML์์ฑ์ ์ ๋ขฐํ ์ ์๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ ์ ์๋๋ก ํด๋ผ
- ์๋ฐ์คํฌ๋ฆฝํธ์ ์ ๋ขฐํ ์ ์๋ ๊ฐ์ด ๋ค์ด๊ฐ ์ ์๋๋ก ํด๋ผ
- CSS์ ๋ชจ๋ ์ ๋ขฐํ ์ ์๋ ๊ฐ์ ๋ํ์ฌ ๊ฒ์ฆํด๋ผ
- URLํ๋ผ๋ฏธํฐ์ ์ ๋ขฐํ ์์๋ ๊ฐ์ด ์๋์ง ๊ฒ์ฆํด๋ผ
- HTML์ฝ๋๋ฅผ ์ ์ฒด์ ์ผ๋ก ํ๋ฒ๋ ๊ฒ์ฆํด๋ผ
XSS ๊ณต๊ฒฉ์ ์๋ ๋ค์ํ๊ณ ๋ง์ ๋ชจ๋ ์๋ฐฉ์ด ๋ถ๊ฐ๋ฅํ๋ค๊ณ ํ๋ค. ๊ฐ๋ฐ์์ ๊พธ์คํ ๊ด๋ฆฌ์ ๊ฐ์๊ฐ ํ์ํ ๋ถ๋ถ์ธ ๊ฒ ๊ฐ๋ค.
'CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋คํธ์ํฌ] IP - (IPv4, IPv6) (0) | 2023.11.10 |
---|