๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ’๏ธ Web Hacking/Dreamhack

[Dreamhack] Cookie & Session + ์ฟ ํ‚ค ๋ณ€์กฐ + ์ฟ ํ‚ค ์ ์šฉ + ์„ธ์…˜ ํ•˜์ด์žฌํ‚น (Session Hijacking)

by A Lim Han 2022. 9. 16.

1 - 0 - 5. Cookie & Session + ์ฟ ํ‚ค ๋ณ€์กฐ + ์ฟ ํ‚ค ์ ์šฉ + ์„ธ์…˜ ํ•˜์ด์žฌํ‚น (Session Hijacking)

 

 

 

# ์ฟ ํ‚ค(Cookie)

: Key, Value ๋กœ ์ด๋ฃจ์–ด์ง„ ์ผ์ข…์˜ ๋‹จ์œ„์ด์ž, Key-Value ํ˜•ํƒœ์˜ ๊ฐ’์ด๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ๊ฐ™์ด ์ „์†กํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์„œ๋ฒ„๋Š” ์ฟ ํ‚ค๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.

 

 

- Cookie ์‚ฌ์šฉ ์ด์œ 

: HTTP ํ”„๋กœํ† ์ฝœ์˜ ํŠน์ง•์ธ Connectionless, Stateless ๋•Œ๋ฌธ์— ์›น ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•จ

Connectionless Stateless
ํ•˜๋‚˜์˜ ์š”์ฒญ์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ์‘๋‹ต๋งŒ์„ ํ•œ ํ›„ ์—ฐ๊ฒฐ ์ข…๋ฃŒ.
์—ฐ๊ฒฐ์ด ์žˆ์„ ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ ์ƒ์„ฑ
ํ†ต์‹  ์™„๋ฃŒ ํ›„ ์ƒํƒœ ์ •๋ณด ์ €์žฅ X
์ด์ „ ์—ฐ๊ฒฐ์—์„œ ์“ด ๋ฐ์ดํ„ฐ๋ฅผ ํƒ€ ์—ฐ๊ฒฐ์—์„œ ์š”๊ตฌํ•  ์ˆ˜ X

 

 

 

- ์ฟ ํ‚ค ๋ณ€์กฐ

: ์„œ๋ฒ„๊ฐ€ ์ถ”๊ฐ€์ ์ธ ๊ฒ€์ฆ ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š์œผ๋ฉด ์•…์˜๋ฅผ ๊ฐ€์ง„ ์ด์šฉ์ž๊ฐ€ ์ฟ ํ‚ค ์ •๋ณด๋ฅผ ๋ณ€์กฐํ•˜์—ฌ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ , ์ด๋ฅผ ํ†ตํ•ด ์ •๋ณด๋ฅผ ํƒˆ์ทจํ•  ์ˆ˜ ์žˆ์Œ

 

 

 

 

# ์„ธ์…˜(Session)

: ์ฟ ํ‚ค์— ํฌํ•จ๋œ Session ID๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ์ €์žฅ๋˜์–ด์žˆ๋Š” ์„ธ์…˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฟ ํ‚ค์™€ ๊ด€๋ จ๋œ ์ธ์ฆ ์ •๋ณด๋ฅผ ๋ณ€์กฐํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•จ

 

 

- ์„ธ์…˜์˜ ๋™์ž‘ ๋ฐฉ์‹

1. ์ธ์ฆ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ์ €์žฅ

2. ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ํ‚ค( = ์œ ์ถ”๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋žœ๋คํ•œ ๋ฌธ์ž์—ด = Session ID )์„ ์ƒ์„ฑ

3. ์ƒ์„ฑํ•œ ํ‚ค๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†ก

4. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฐ›์€ ํ‚ค๋ฅผ ์ฟ ํ‚ค์— ์ €์žฅ

5. ์ฐจํ›„ HTTP ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ €์žฅํ•œ ํ‚ค ์‚ฌ์šฉ

6. ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์— ํฌํ•จ๋œ ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ์ธ์ฆ ์ƒํƒœ ํ™•์ธ

 

 

 

- ์„ธ์…˜ ํ•˜์ด์žฌํ‚น (Session Hijacking)

: ๊ณต๊ฒฉ์ž๊ฐ€ ํƒ€ ์ด์šฉ์ž์˜ ์ฟ ํ‚ค๋ฅผ ํ›”์ณ ์ธ์ฆ ์ƒํƒœ๋‚˜ ์ •๋ณด๋ฅผ ํƒˆ์ทจํ•˜๋Š” ๊ณต๊ฒฉ ๊ธฐ๋ฒ•

 

 

 

 

# ์ฟ ํ‚ค์™€ ์„ธ์…˜์˜ ์ฐจ์ด์ ๊ณผ ์‹ค์Šต

์ฟ ํ‚ค ์„ธ์…˜
๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ ์ด์šฉ์ž๊ฐ€ ์ €์žฅ ์„œ๋ฒ„๊ฐ€ ๋ฐ์ดํ„ฐ ์ €์žฅ

 

์„ธ์…˜์„ ๋ฐ”๊ฟ”์ฃผ๊ธฐ ์ „

 

์„ธ์…˜ ์ €์žฅ์†Œ์—์„œ admin์˜ ์„ธ์…˜์„ ๊ฐ€์ ธ์˜ค๊ธฐ

 

์„ธ์…˜์„ ๋ฐ”๊พธ๋‹ˆ ๊ฒฐ๊ณผ๊ฐ’์— admin ์ถœ๋ ฅ

 

 

 

 

# ์ฟ ํ‚ค ์ ์šฉ๋ฒ•

: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฟ ํ‚ค์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ์•…์˜์ ์œผ๋กœ ๋ณ€์กฐํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฟ ํ‚ค์˜ ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„ ์„ค์ • ๊ฐ€๋Šฅ

 

 

- ์„œ๋ฒ„ ์ธก

: HTTP ์‘๋‹ต ์ค‘ ํ—ค๋”์— ์ฟ ํ‚ค ์„ค์ • ํ—ค๋” (Set-Cookie)๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ์˜ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ฟ ํ‚ค ์„ค์ •

HTTP/1.1 200 OK
Server: Apache/2.4.29 (Ubuntu)
Set-Cookie: name=test;
Set-Cookie: age=30; Expires=Fri, 30 Sep 2022 14:54:50 GMT;
...

 

 

 

- ํด๋ผ์ด์–ธํŠธ ์ธก

: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฟ ํ‚ค ์„ค์ •

document.cookie = "name=test;"
document.cookie = "age=30; Expires=Fri, 30 Sep 2022 14:54:50 GMT;"

 

 

 

- ํฌ๋กฌ Application ํ™œ์šฉ๊ณผ ์ฟ ํ‚ค ์ •๋ณด ํ™•์ธ ๋ฐ ์ˆ˜์ •

1. ํฌ๋กฌ ํŽ˜์ด์ง€ ์‹คํ–‰

 

 

2. ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ ํ›„ '๊ฒ€์‚ฌ' ๋ฒ„ํŠผ ํด๋ฆญ

 

 

3. Application ํƒญ์œผ๋กœ ๊ฐ„ ๋’ค Cookies ํŽผ์น˜๊ธฐ

์„ค์ •๋œ ์ฟ ํ‚ค์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ  ์ด๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Œ

 

 

 

- ํฌ๋กฌ Console ํ™œ์šฉ๊ณผ ์ฟ ํ‚ค ์ •๋ณด ํ™•์ธ

1. ํฌ๋กฌ ํŽ˜์ด์ง€ ์‹คํ–‰ ํ›„ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ  -->  '๊ฒ€์‚ฌ' ๋ฒ„ํŠผ ํด๋ฆญ

 

 

2. Console ํƒญ ํด๋ฆญ ํ›„ document.cookie ์ž…๋ ฅ

๋‚ด ์ฟ ํ‚ค ์˜ต์…˜์—์„œ๋Š” ํ™•์ธ์ด ์•ˆ๋˜๋Š” ๋“ฏ ํ•˜๋‹ค.