๋ฒ์ญ :
๋ฏธ์
์ค๋ช
์น ์์ฉ ํ๋ก๊ทธ๋จ์ ์ข
์ข
์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ธก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณด๊ดํ๊ณ ๋์ค์ ์ฌ์ฉ์์๊ฒ ํ์ํฉ๋๋ค. ์ด๋ฌํ ์ฌ์ฉ์ ์ ์ด ๋ฐ์ดํฐ์ ์ถ์ฒ์ ๊ด๊ณ์์ด ์ด๋ค์ ์ ์คํ๊ฒ ์ฒ๋ฆฌํด์ผํฉ๋๋ค.
์ด ๋จ๊ณ๋ ๋ณต์กํ ์ฑ์์ XSS ๋ฒ๊ทธ๊ฐ ์ผ๋ง๋ ์ฝ๊ฒ ๋์
๋ ์ ์๋์ง ๋ณด์ฌ์ค๋๋ค.
๋ฏธ์
๋ชฉํ
์์ฉ ํ๋ก๊ทธ๋จ ์ปจํ
์คํธ์์ alert ()๋ฅผ ํ์
ํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์
ํ์ญ์์ค.
์ฐธ๊ณ : ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฒ์๋ฌผ์ ์ ์ฅํ๋ฏ๋ก ๊ฒฝ๊ณ ๋ฅผ ์คํํ๊ธฐ ์ํด ์ฝ๋๋ฅผ ์ด์ง ์
๋ ฅํ๋ฉด ๋ค์ ๋ก๋ ํ ๋ ๋ง๋ค ์ด ๋ ๋ฒจ์ ํ ์ ์์ต๋๋ค.
๋ด ์
๋ ฅ์ ์ ์ฅํ๊ณ ๋ค์ ๋์๊ฒ ๋ณด์ฌ์ฃผ๋ ๊ตฌ์กฐ์ด๋ค.
๊ทธ๋ฅ ์คํฌ๋ฆฝํธ ํ๊ทธ์ alert()๋ฅผ ๋ฃ์ด๋ณด๋ฉด
๋๋๊ฒ๋ ์๋ฌด ์ผ์ด ์ผ์ด๋์ง ์๋๋ค.
์ค๋ช
์ ๋ค์ ์ฐจ๋ถํ ์ฝ์ด๋ณธ๋ค๋ฉด ๋ฌด์ธ๊ฐ๊ฐ ๋ ์ค๋ฅผ ์ ์์ ๊ฒ์ด๋ค.
์๋ฒ์ ๊ฒ์๋ฌผ์ ์ ์ฅํ๊ณ , ๊ทธ๊ฑธ ๋ค์ ๋ถ๋ฌ์จ๋ค๋ ์ ์์ ๊ฒ์ํ์ด ์๊ฐ๋๋ค.
์ฆ, ์ฐ๋ฆฌ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ฅํ๊ณ , ๊ทธ๊ฒ์ ๋ค์ ๋ถ๋ฌ์ฌ ๋ alert()๋ฅผ ๋์ฐ๋ฉด ๋๋ ๊ฒ์ด๋ค.
์ด์ฏค๋๋ Stored xss ๊ณต๊ฒฉ์ด ์๊ฐ๋ฌ๋ค.
์ด๋ ์ทจ์ฝํ ์น ์ฌ์ดํธ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ฅํ๊ณ , ๊ทธ ์๋ฃ๋ฅผ ์์ฒญํ ๋ ํด๋น ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋ response๊ฐ ์ ๋ฌ๋์ด ๋ค์ ํด๋ผ์ด์ธํธ์๊ฒ์ ๋์ํ๋ ๋ฐฉ์์ด๋ค.
์คํฌ๋ฆฝํธ ํ๊ทธ๋ ๋์ํ์ง ์์ผ๋ ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ์ด์ฉํด ๋ณด๊ฒ ๋ค.
์ด๋ฏธ์ง ํ๊ทธ๋ก ์ด๋ป๊ฒ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋๊ณ ?
๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค.
ํ๊ทธ์ src ์์ฑ์ ์กด์ฌํ์ง ์๋ ์ด๋ฏธ์ง์ ๊ฒฝ๋ก๋ฅผ ์์๋ก ์
๋ ฅํ ํ, onerror ์์ฑ์ผ๋ก ๊ทธ์ ๋ํ ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ํด ์ฃผ๋ฉด ๋๋ค.
๋ค์ ๋งํด์ ์ฐ๋ฆฌ๋ <img src =โ์กด์ฌํ์ง ์๋ ๊ฒฝ๋กโ onerror=โalert(1)โ> ์ด๋ฐ์์ผ๋ก ํ์ด๋ก๋๋ฅผ ์งค ์ ์๋ค.
onerror๋?
์๋ณธ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ค๋ ๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ค.
๊ทธ๋ฆฌํ์ฌ ๋๋ ์๋์ ๊ฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ์
๋ ฅํด stored xss๋ฅผ ์ถ๋ ฅํ๊ฒ ํ๋ค.
<img src=โcyalume.jpgโ onerror=โalert(โstored xssโ)โ>
์คํ ๊ฒฐ๊ณผ alert๋ฅผ ๋์ฐ๋ ๋ฐ ์ฑ๊ณตํ์๋ค.
Key point: stored xss, img ํ๊ทธ์ onerror ์ฒ๋ฆฌ