โ์ดโฆ ๋ณด์์ ๋ฐฑ์๋๋ ์๋์ด๊ฐ ์ ๊ฒฝ์ฐ๋ ๊ฑฐ ์๋?โ
๋ผ๊ณ ์๊ฐํ์
จ๋ค๋ฉด ์ง๊ธ ๋น์ฅ ์ด ํฌ์คํ
์ ๋
ํ์
์ผ ํฉ๋๋ค!
ํ๋ก ํธ์๋, ๋ฐฑ์๋ ๊ฐ๋ฆด ๊ฒ ์์ด ์น ๊ฐ๋ฐ์๋ผ๋ฉด ๋ณด์์ ๊ธฐ๋ณธ๊ธฐ์์.
์๋ฌด๋ฆฌ ๊ธฐ๋ฅ์ด ์ ๋์๊ฐ๋, ๋ณด์์ด ๋ซ๋ฆฌ๋ฉดโฆ
๐ "๊ณ ๊ฐ ์ ๋ณด ์ ์ถ", "๋ด ์๋ฒ๊ฐ ํด์ปค ์๋ฒ๊ฐ ๋จ", "ํ์ฌ ๋งํจ"
๊น์ง๋ ํ์ค์ด ๋ฉ๋๋ค.
(๐ถ ์ด๋ณด์๋ ๊ฐ๋ +์์+๋ฐฉ์ด๋ฒ๊น์ง 3๋ถ์ปท์ผ๋ก ์๋ฒฝ ์ ๋ณต!)
๐ ๊ฐ๋
:
์นํ์ด์ง์ ์
์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฃ์ด์, ๋ค๋ฅธ ์ฌ๋์ ๋ธ๋ผ์ฐ์ ์์ ์คํ์ํค๋ ๊ณต๊ฒฉ
์์ ์๋๋ฆฌ์ค:
๋๊ตฐ๊ฐ ๋๊ธ์ ์ด๋ ๊ฒ ์:
<script>alert("ํดํน๋๋ค!");</script>
์ด๊ฒ ๊ทธ๋๋ก ์ถ๋ ฅ๋๋ฉด,
๋ค๋ฅธ ์ฌ๋์ด ์ด ๋๊ธ ๋ณผ ๋ ๋ธ๋ผ์ฐ์ ์์ ํ์
์ด ๋ธ!
์ ์ํํ๊ฐ์?
๐ก๏ธ ๋ฐฉ์ด๋ฒ:
< โ <)dangerouslySetInnerHTML, v-html ์ฌ์ฉ ์ ์ฃผ์!๐ ๊ฐ๋
:
๋ด๊ฐ ๋ก๊ทธ์ธํ ์ํ๋ฅผ ์
์ฉํด์ ๋ชฐ๋ ์์ฒญ์ ๋ณด๋ด๋ ๊ณต๊ฒฉ
์: ๋ ํด๋ฆญํ ์ ์๋๋ฐ, ๋ด ๋์ด ๋น ์ ธ๋๊ฐ
์์ ์๋๋ฆฌ์ค:
๋๋ ์ํ ์ฌ์ดํธ ๋ก๊ทธ์ธ ์ค
๋๊ตฐ๊ฐ ๋ง๋ ์ฌ์ดํธ์ ๋ค์ด๊ฐ์๋ง์,
<img src="https://bank.com/transfer?to=hacker&amount=10000" />
์ด ์์ฒญ์ด ์คํ๋จ (๋์๋ ์ ๋ณด์)
๐ก๏ธ ๋ฐฉ์ด๋ฒ:
Strict, Lax)๐ ๊ฐ๋
:
์
๋ ฅ๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ช
๋ น์ด๋ฅผ ์กฐ์ํ๋ ํดํน
์: โ๋ก๊ทธ์ธ ์ ํด๋ ๋ก๊ทธ์ธ๋จโ
์์ ์๋๋ฆฌ์ค:
์์ด๋์ ' OR 1=1 -- ์
๋ ฅํ๋ฉด
SELECT * FROM users WHERE id = '' OR 1=1 --;
์กฐ๊ฑด์ด ๋ฌด์กฐ๊ฑด ์ฐธ โ ๋ก๊ทธ์ธ ์ฑ๊ณต
๐ก๏ธ ๋ฐฉ์ด๋ฒ:
๐ ๊ฐ๋
:
์ฌ์ฉ์ ์
๋ ฅ๊ฐ์ผ๋ก ์๋ฒ ๋ช
๋ น์ด๋ฅผ ์คํ์์ผ๋ฒ๋ฆฌ๋ ํดํน
์์ ์๋๋ฆฌ์ค:
์ฌ์ฉ์๊ฐ ์ด๋ฆ์ ; rm -rf / ์
๋ ฅ
์๋ฒ์์ ์คํ:
echo "์ด๋ฆ: ; rm -rf /"
์๋ฒ ํ์ผ ๋ค ๋ ์๊ฐ
๐ก๏ธ ๋ฐฉ์ด๋ฒ:
๐ ๊ฐ๋
:
๋ด ์ฌ์ดํธ๋ฅผ ํฌ๋ช
iframe์ผ๋ก ๋ฎ์ด์์์,
์ฌ์ฉ์๊ฐ ์๋ฑํ ๊ฑธ ํด๋ฆญํ๊ฒ ๋ง๋๋ ๊ณต๊ฒฉ
์์ ์๋๋ฆฌ์ค:
๐ก๏ธ ๋ฐฉ์ด๋ฒ:
X-Frame-Options: DENYframe-ancestors 'none';| ๊ณต๊ฒฉ๋ช | ๊ฐ๋ | ์์ |
|---|---|---|
| ์ธ์ ํ์ด์ฌํน | ์ฟ ํค ํ์ทจํด์ ๋ก๊ทธ์ธ ๋บ๊ธฐ | ๊ณต๊ณต Wi-Fi์์ ๊ณต๊ฒฉ์๊ฐ ์ธ์ ๊ฐ๋ก์ฑ๊ธฐ |
| ์คํ ๋ฆฌ๋ค์ด๋ ํธ | URL๋ก ํผ์ฑ ์ฌ์ดํธ๋ก ์ด๋ | /redirect?to=evil.com |
| ๋๋ ํ ๋ฆฌ ํธ๋๋ฒ์ค | ์๋ฒ ๋ด๋ถ ํ์ผ ์ด๋ | /../../etc/passwd |
| IDOR | URL๋ก ๋จ ์ ๋ณด ๋ณด๊ธฐ | /user?id=2 โ ๋ค๋ฅธ ์ฌ๋ ์ ๋ณด ์ด๋ |
| ํ์ผ ์ธํด๋ฃจ์ | ์ ์ฑํ์ผ ์๋ฒ์์ ์คํ | include("evil.php") |
โ
์ฌ์ฉ์ ์
๋ ฅ๊ฐ์ ๋ฌด์กฐ๊ฑด ๊ฒ์ฆํ๊ธฐ
โ
ํ๋ฉด ์ถ๋ ฅ ์ escape ํ์ (<, >, " ๋ฑ)
โ
POST ์์ฒญ์ CSRF Token ๋ถ์ด๊ธฐ
โ
HTTPS ๊ธฐ๋ณธ! SSL ์ธ์ฆ์ ์ฌ์ฉํ๊ธฐ
โ
๋ณด์ ํค๋ (X-Frame-Options, Content-Security-Policy ๋ฑ)
โ
์๋ฒ/๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ณด์ ์
๋ฐ์ดํธ ์ฃผ๊ธฐ์ ํ์ธ
โ
๊ด๋ฆฌ์ ๊ธฐ๋ฅ์ IP ์ ํ ๋๋ ๋ก๊ทธ์ธ ์ ํ
"๋ณด์์ ๋ด๊ฐ ์ ๋ซ๋ ธ๋ค๊ณ ๋์ด ์๋๋ผ, ์ธ์ ๋ ๋ซ๋ฆด ์ ์๋ค๋ ์๊ฐ์์ ์์๋ฉ๋๋ค."
๋ณด์์ ์งํค๋ ๊ฑด ์ด๋ ต์ง ์์์.
๋จ์ง โ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ๋์น๋ ๊ฒโ์ผ ๋ฟ์ด์ฃ .
์ด๋ฒ ๊ธ๋ก ์กฐ๊ธ์ด๋๋ง โ๋ณด์์ ๊ฐํ ๊ฐ๋ฐ์โ๊ฐ ๋์
จ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๐ช๐ป
๋ณด์ ๋ฐฉ๋ฒ์ ๋ํด ์ ์ฝ๊ณ ๊ฐ๋๋ค ๋ค์์๋ ๋ฉ์ง ๊ธ ๊ธฐ๋ํ๊ฒ ์ต๋๋น!