๊ฐ๋
Cross-site Request Forgery(์ฌ์ดํธ ๊ฐ ์์ฒญ ์์กฐ)์ ์ฝ์ด๋ก ์ฌ์ฉ์๊ฐ ์์ ์ ์์ง์ ๋ฌด๊ดํ๊ฒ ๊ณต๊ฒฉ์๊ฐ ์๋ํ ํ๋์ ํด์ ํน์ ์น ํ์ด์ง๋ฅผ ๋ณด์์ ์ทจ์ฝํ๊ฒ ํ๊ฑฐ๋ ์์ , ์ญ์ ๋ฑ์ ์์ ์ ํ๊ฒ ๋ง๋๋ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ.
๊ณต๊ฒฉ ๋์ด๋๊ฐ ๋์ง ์์ ํํ ์ฌ์ฉ๋๋ค.
XSS์ ์ด์ฉํ ๊ณต๊ฒฉ์ด ์ฌ์ฉ์๊ฐ ํน์ ์น์ฌ์ดํธ๋ฅผ ์ ์ฉํ๋ ์ ์ ๋
ธ๋ฆฐ ๊ฒ์ด๋ผ๋ฉด,
CSRF๋ ํน์ ์น์ฌ์ดํธ๊ฐ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ ์ฉํ๋ ์ํ๋ฅผ ๋
ธ๋ฆฐ ๊ฒ์ด๋ค.
๊ณต๊ฒฉ ๊ณผ์
๋ง์ผ, ์น ํ์ด์ง๊ฐ ๋ ์์ ๊ฐ๋ฐ์ด ์๋ ์ธ๋ถ์์ ์ด๋ฏธ ๊ฐ๋ฐ๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ ์กฐ๊ธ ์์ ํ ๊ฒ์ด๋ผ๋ฉด,
- ๊ณต๊ฒฉ์๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ํด๋น ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋งคํ์ฌ ๊ฐ์ธ ์๋ฒ์ ์ค์นํ๋ค.
- ๊ทธ ๋ค์์ ๊ณต๊ฒฉ ๊ฐ๋ฅ ํจํด์ ๋ถ์ํ๋ค.
- ์ฃผ๋ก ๊ณต๊ฒฉ์๋ค์ด ์ฐพ๋ ๊ฒ์ ์ฌ์ฉ์ ํจ์ค์๋ ๋ณ๊ฒฝ ํ์ด์ง๋ ํ ์์คํ ๊ณผ ๋ก๊ทธ์ธ ์ฐ๋ ์ฃผ์ ํจํด๊ฐ์ ์ธ์ฆ ๊ด๋ จ๋ ์ทจ์ฝ์ ์ ์ฐพ๋๋ค.
- ์์ ๋จ๊ณ์์ ๋์จ ์ทจ์ฝ์ ์ ์ด์ฉํด ๊ณต๊ฐ๋ ๊ฒ์ํ์ด๋ ๋ฉ์ผ์ ์ด์ฉํด ์ฌ์ฉ์๊ฐ ํด๋น ๋งํฌ๋ฅผ ์ด๊ฒ ๋ง๋ค๋ฉด ๊ณต๊ฒฉ์ด ์๋ฃ๋๋ค.
์์ 1
- ์ด์ฉ์๋ ์น์ฌ์ดํธ์ ๋ก๊ทธ์ธํ์ฌ ์ ์์ ์ธ ์ฟ ํค๋ฅผ ๋ฐ๊ธ๋ฐ๋๋ค
- ๊ณต๊ฒฉ์๋ ๋ค์๊ณผ ๊ฐ์ ๋งํฌ๋ฅผ ์ด๋ฉ์ผ์ด๋ ๊ฒ์ํ ๋ฑ์ ๊ฒฝ๋ก๋ฅผ ํตํด ์ด์ฉ์์๊ฒ ์ ๋ฌํ๋ค.
- http://www.geocities.com/attacker
- ๊ณต๊ฒฉ์ฉ HTML ํ์ด์ง๋ ๋ค์๊ณผ ๊ฐ์ ์ด๋ฏธ์งํ๊ทธ๋ฅผ ๊ฐ์ง๋ค.
- <img src= "https://travel.service.com/travel_update?.src=Korea&.dst=Hell">
- ํด๋น ๋งํฌ๋ ํด๋ฆญ์ ์ ์์ ์ธ ๊ฒฝ์ฐ ์ถ๋ฐ์ง์ ๋์ฐฉ์ง๋ฅผ ๋ฑ๋กํ๊ธฐ์ํ ๋งํฌ์ด๋ค. ์์ ๊ฒฝ์ฐ ๋์ฐฉ์ง๋ฅผ ๋ณ์กฐํ์๋ค.
- ์ด์ฉ์๊ฐ ๊ณต๊ฒฉ์ฉ ํ์ด์ง๋ฅผ ์ด๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฏธ์ง ํ์ผ์ ๋ฐ์์ค๊ธฐ ์ํด ๊ณต๊ฒฉ์ฉ URL์ ์ฐ๋ค.
- ์ด์ฉ์์ ์น์ธ์ด๋ ์ธ์ง ์์ด ์ถ๋ฐ์ง์ ๋์ฐฉ์ง๊ฐ ๋ฑ๋ก๋จ์ผ๋ก์จ ๊ณต๊ฒฉ์ด ์๋ฃ๋๋ค. ํด๋น ์๋น์ค ํ์ด์ง๋ ๋ฑ๋ก ๊ณผ์ ์ ๋ํด ๋จ์ํ ์ฟ ํค๋ฅผ ํตํ ๋ณธ์ธํ์ธ ๋ฐ์ ํ์ง ์์ผ๋ฏ๋ก ๊ณต๊ฒฉ์๊ฐ ์ ์์ ์ธ ์ด์ฉ์์ ์์ ์ด ๊ฐ๋ฅํ๊ฒ ๋๋ค.
์์ 2
๋ง์ผ, A๋ผ๋ ์ฌ์ดํธ์ ์ฌ์ฉ์ ๊ฐ์ธ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ์ ํ๋ ์ฃผ์ ํจํด์ด 'abc.com/user.do?cmd=user_passwd_change&user=admin&newPwd=1234'๋ผ๊ณ ํ๋ค๋ฉด ์ด๋ฌํ ๋งํฌ๋ฅผ ์ฌ์ฉ์์ ๋ฉ์ผ๋ก XSS ํํ๋ก ๋ณด๋ด๊ณ ๋ฉ์ผ์ ์ฝ๊ฒ ๋๋ฉด ํด๋น ์ฌ์ฉ์์ ํจ์ค์๋๊ฐ 1234๋ก ์ด๊ธฐํ๋๋ค. ์ด๋ฅผ ๊ด๋ฆฌ์์๊ฒ ๋ณด๋ด์ ์ผ๋ฐ ๊ณ์ ์ ๊ด๋ฆฌ์ ๊ณ์ ์ผ๋ก ๋ฐ๊พธ๋๋ก ํ๋ค๋ ์ง, ์๋๋ฉด ๊ด๋ฆฌ์ ๊ณ์ ํจ์ค์๋๋ฅผ ๋ฐ๊พธ๋๋ฐ ์ด์ฉํ๋ค๋ฉด ํด๋น ์ฌ์ดํธ์ ๋ชจ๋ ์ ๋ณด๊ฐ ํดํน๋นํ๋ ๋ฐ๋ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ์๋๋ค.
์ฐธ๊ณ ๋ก, img ํ๊ทธ๋ GET ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ๋ณด๋ด๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ img๋ฅผ ์ด์ฉํ ์๋ ์๋ค. ๋๋ถ๋ถ์ ์ฌ์ดํธ๋ img๋ฅผ ํํฐ๋งํ์ง ์์ผ๋ฏ๋ก, ํน์ ํํฐ๋งํ์ง ๋ชปํ๋ฏ๋ก ์ ์ฉํ ๋ฐฉ๋ฒ์ด ๋ ์ ์๋ค.
์๋ฅผ ๋ค๋ฉด ๋๋ฌด์ํค์ ๊ฒฝ์ฐ <img src="https://namu.wiki/member/logout"> ์ ๊ฐ์ ์ฝ๋๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ํด๋น ๋ฌธ์๋ฅผ ๋ณผ ๊ฒฝ์ฐ ๋ก๊ทธ์์์ด ๋๋ค. ์ด๋ ๋๋ฌด์ํค ๋ฟ๋ง์ด ์๋ ๋๋ถ๋ถ์ ์ฌ์ดํธ์ ๋ฌธ์
CSRF ๋ฐฉ์ง๋ฒ
- ์ค์ ์ ๋ณด๋ ์ฟ ํค์ ์ ์ฅํ์ง ์๋๋ค.
- XSS ์ทจ์ฝ์ ํ์ธ
- Referer ์ฒดํฌ
- Referer๋ HTTP ํค๋์ ์๋ ์ ๋ณด๋ก, ํด๋น ์์ฒญ์ด ์์ฒญ๋ ํ์ด์ง์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๋ฐฉ๋ฒ์ด ๊ฐ๋จํ์ฌ ์๊ท๋ชจ ์น ์ฌ์ดํธ์์ ์ฃผ๋ก ์ด์ฉ๋๋ค.
- Paros, Zap, Fiddler์ ๊ฐ์ ํ๋ก๊ทธ๋จ์ผ๋ก ์กฐ์๊ฐ๋ฅํ ๋จ์ ์ด ์๋ค.
- ์ธ์
์ ์์ ๋์(ํ ํฐ)๋ฅผ ๋ฐ๊ธ
- ํจ์ค์๋ ๋ณ๊ฒฝ ๊ฐ์ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ๋ค๋ฃฐ ๋ ์ธ์ ์ ์์ ๋์๋ฅผ ๋ฐ๊ธํด์, ํด๋น ๋์๊ฐ ์๋ ์ํฉ์์ ํด๋น ๋์๋ค์ด ์ด๋ฃจ์ด์ง๋ฉด ์์ฒญ์ ๊ฑฐ๋ถํ๋ ๋ฐฉ๋ฒ์ด๋ค.
- ์ฌ์ฉ์๊ฐ ์ ๋ง๋ก ๋ณ๊ฒฝ์ ์๋ํ๋ ๊ฒฝ์ฐ์๋ง ๋ณ๊ฒฝ์ํ๋ ๋ฐฉ๋ฒ.
- ๋ณ๊ฒฝ ์์ CAPTCHA๋ฅผ ์ด์ฉํ์ฌ CAPTCHA ์ธ์ฆ์ฝ๋๊ฐ ์๊ฑฐ๋ ํ๋ฆฌ๋ฉด ๊ฑฐ๋ถํ๋๋ก ํ๋ ๋ฐฉ๋ฒ
- GET/POST ๊ตฌ๋ถ
- img ํ๊ทธ ๋ฑ์ ์ด์ฉํ ๊ฒฝ์ฐ GET ์์ฒญ์ผ๋ก ๋ค์ด์ค๊ฒ ๋ ๊ฒ์ด๊ณ , form์ ์ด์ฉํด ๊ฐ์ ๋ฐ๋ ๊ฒฝ์ฐ POST๋ฅผ ์ด์ฉํ๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ด๋ค.
- ํ๋ฌ๊ทธ์ธ ์ฌ์ฉ
- ๋๊ฐ ํ๋ ์์ํฌ์์ ์์ ๋ฐฉ๋ฒ๋ค์ ํตํฉํ ํ๋ฌ๊ทธ์ธ ๋ฑ์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
- ์์ ๋ฐฉ๋ฒ๋ค์ ์ผ์ผ์ด ์ ์ฉํ๊ธฐ ๊ท์ฐฎ๋ค๋ฉด ์ฐพ์๋ณด๊ณ ์ ์ฉํด๋ณด์.
์ฐธ๊ณ
- namu.wiki/w/CSRF
- ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%ED%8A%B8_%EA%B0%84_%EC%9A%94%EC%B2%AD_%EC%9C%84%EC%A1%B0
- stupidsecurity.tistory.com/m/18?category=749410
'๐CS > Web' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Web] Web Server ์ WAS์ ์ฐจ์ด (0) | 2021.08.04 |
---|---|
[Web] GET๊ณผ POST ์ฐจ์ด (0) | 2021.08.03 |
XSS(Cross-site Scripting) ๊ณต๊ฒฉ (0) | 2021.04.25 |
[Web] param vs query vs body (2) | 2021.04.18 |
[Web] CORS(Cross-Origin Resource Sharing) (0) | 2021.04.18 |
๋๊ธ