ํ•ดํ‚น ์•Œ๋ ค์ค„๊ฒŒ 21ํ™”: Open Redirect ์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜ ํ•ดํ‚น ์•Œ๋ ค์ค„๊ฒŒ๋Š” Open Redirect ์ทจ์•ฝ์ 


ํ•ดํ‚น ์•Œ๋ ค์ค„๊ฒŒ
21ํ™”: Open Redirect

์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜ ํ•ดํ‚น ์•Œ๋ ค์ค„๊ฒŒ๋Š” Open Redirect ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค. ์ด์ „์˜ ์ทจ์•ฝ์ ๋ณด๋‹ค๋Š” ๋‹ค์†Œ ๊ฐ„๋‹จํ•˜๋‹ˆ ์ฐจ๊ทผ์ฐจ๊ทผ ์‚ดํŽด๋ณด๋„๋ก ํ•ด์š”! ๐Ÿ˜„

Redirect๊ฐ€ ๋ญ์˜ˆ์š”? ๐Ÿคจ 
์šฐ์„  Redirect๋Š” Re + direct๋กœ ๋‹ค์‹œ ์ง€์ •ํ•œ๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ์žˆ์–ด์š”.
์˜ˆ๋ฅผ ๋“ค์–ด์„œ ใ…‡ใ…‡ํ•™๊ต ๋ณด์•ˆํ•™๊ณผ ๋„ค์ด๋ฒ„ ์นดํŽ˜์— ๊ฐ€์ž…๋œ ํ•™์ƒ ํšŒ์›๋งŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ฃ . ๊ฐ€์ž…๋œ ํ•™์ƒ ํšŒ์›์ด์–ด๋„ ๋„ค์ด๋ฒ„์— ๋กœ๊ทธ์ธ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ํ•ด๋‹น ๊ธ€์˜ URL์„ ์ž…๋ ฅํ•˜์—ฌ ์ ‘๊ทผํ•  ๋•Œ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋ฉ๋‹ˆ๋‹ค.  

Open Redirect ์ทจ์•ฝ์ ์ด ๋ญ์˜ˆ์š”? ๐Ÿคจ
์ •์ƒ์ ์ธ ์›น ์‚ฌ์ดํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ณ ์ • URL๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ํ•˜๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ URL์„ ์•ˆ์ „ํ•˜๊ฒŒ ๊ตฌ์„ฑํ•˜๋ฉด ๋ฌธ์ œ์—†์–ด์š”.
ํ•˜์ง€๋งŒ, ํ•ฉ๋ฒ•์ ์ธ ์›น ์‚ฌ์ดํŠธ๊ฐ€ ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ URL์„ ๊ตฌ์„ฑํ•˜์ง€๋งŒ ์ถฉ๋ถ„ํžˆ ํ•„ํ„ฐ๋งํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ฆํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์™€ ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ€์ƒ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ URL์„ ์ง€์ •ํ•˜๋„๋ก ํ—ˆ์šฉํ•œ๋‹ค๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒ ์ฃ .

์ด ๊ฐ„๋‹จํ•œ PHP ์ฝ”๋“œ๋ฅผ ๋ณผ๊นŒ์š”?
ํ•ด์ปค๊ฐ€ GET ์š”์ฒญ์˜ url ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์— ์•„๋ฌด ํ•„ํ„ฐ๋ง ์—†์ด ์•…์˜์ ์ธ ์›น์‚ฌ์ดํŠธ URL์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ณ  ์ด ๋Œ€์ƒ URL์ด Location ํ—ค๋”๋กœ ์ „์†ก๋˜์–ด ์‚ฌ์šฉ์ž๋ฅผ ์•…์˜์ ์ธ ์›น ํŽ˜์ด์ง€๋กœ ์ด๋™์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— Open Redirect๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋‚˜์š”? 
์šฐ์„  ๋Œ€ํ‘œ์ ์œผ๋กœ ํ”ผ์‹ฑ ๊ณต๊ฒฉ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ”ผ์‹ฑ๊ณต๊ฒฉ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋Š” [ํ•ดํ‚น ์•Œ๋ ค์ค„๊ฒŒ] ์‚ฌํšŒ๊ณตํ•™๊ธฐ๋ฒ•์—์„œ ๋‹ค์‹œ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”! ํ”ผ์‹ฑ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ–ˆ์—ˆ์–ด์š”. 
์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์€ํ–‰์—์„œ ์ด๋ฉ”์ผ์ด ์™€์„œ ์œ„์žฅ๋œ ํ™ˆํŽ˜์ด์ง€์— ์ ‘์†ํ•ด์„œ ๊ณ„์ขŒ๋ฒˆํ˜ธ, ๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ ๋น„๋ฐ€ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•จ์œผ๋กœ์จ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ๋นผ๋‚ด๊ฑฐ๋‚˜, ๋˜๋Š” ๋‹จ์ง€ ํ”ผํ•ด์ž์˜ ์ปดํ“จํ„ฐ์— ์•…์„ฑ์ฝ”๋“œ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ณต๊ฒฉ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ€์งœ ํ™ˆํŽ˜์ด์ง€๋ฅผ ์œ„์žฅํ•˜์—ฌ ํ”ผํ•ด์ž๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด์ฃ . ๐Ÿ““

์ด์ฒ˜๋Ÿผ Open Redirect์˜ ํ”ผ์‹ฑ ๊ณต๊ฒฉ์€ ํ•ฉ๋ฒ•์ ์ธ ์›น ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž์˜ ์‹ ๋ขฐ๋ฅผ ์•…์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†์•„ ๋„˜์–ด๊ฐ€๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, ํ•ด์ปค๋Š” https://www.google.com/search?btnI&q=//attacker.com ๊ฐ™์€ URL์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์š”. ์‚ฌ์šฉ์ž๊ฐ€ google๋งŒ ๋ณด๊ณ  ์‹ ๋ขฐํ•˜๋ฉฐ ํด๋ฆญํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฑฐ์ฃ . ๐Ÿ˜“
์ž์‹ ์ด ์ €๋Ÿฐ URL์—๋Š” ์†์ง€ ์•Š์•„! ํ•˜์‹œ๋Š” ๋ถ„ ์žˆ๋‚˜์š”? ๊ทธ๋Ÿผ https://www.google.com/search?btnI&q=//%61%74%74%61%63%6B%65%72%2E%53%6F%6D ๋Š” ์–ด๋•Œ์š”?
์‹ค์ œ ์ƒํ™ฉ์€ ์ด๋ ‡๊ฒŒ URL ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์žฅํ•˜๊ณ  ์ถ”๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ธด ๋ฌธ์ž์—ด์— ๋ฌปํ˜€ ์žˆ์„ ์ˆ˜๋„ ์žˆ์–ด์š”.

๊ทธ๋ฆฌ๊ณ  ์ €๋ฒˆ์— XSS ๊ธฐ์–ตํ•˜์‹œ๋‚˜์š”? [ํ•ดํ‚น ์•Œ๋ ค์ค„๊ฒŒ] XSS(Cross Site Scripting)
Open Redirect๋กœ ๋ฐ”๋กœ XSS๊ฐ€ ๋˜ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ฌ 
javascript: ํ”„๋กœํ† ์ฝœ์„ ํ—ˆ์šฉํ•˜๋Š” DOM ๊ธฐ๋ฐ˜ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์˜ ๊ฒฝ์šฐ์— JavaScript ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์–ด์š”.
๋ฒ„๊ทธ๋ฐ”์šดํ‹ฐ ํ”Œ๋žซํผ HackerOne์— ์ œ๋ณด๋œ ์•„์ฃผ ๊ฐ„๋‹จํ•œ ์ทจ์•ฝ์  ๋ ˆํฌํŠธ๋ฅผ ์˜ˆ์‹œ๋กœ ์„ค๋ช…ํ•ด ๋“œ๋ฆด๊ฒŒ์š”. 
MoPub ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ https://app.mopub.com/login?next=https://google.com์—์„œ next ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ Open Redirect๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ JavaScript๋„ ์‹คํ–‰๋˜์–ด XSS๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์–ด์š”.
์•„๋ž˜ ์‚ฌ์ง„์€ next = javascript:alert("proof of concept");์œผ๋กœ ์ˆ˜์ •ํ•˜์—ฌ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

Open Redirect๋ฅผ ์–ด๋–ป๊ฒŒ ๋ง‰์„ ์ˆ˜ ์žˆ๋‚˜์š”? ๐Ÿค”
๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด์ง€๋งŒ, ํ•ญ์ƒ ๊ทธ๋Ÿด ์ˆ˜๋Š” ์—†๊ฒ ์ฃ .
๋‹ค๋ฅธ ๋งŽ์€ ์ทจ์•ฝ์ ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Open Redirect ์ทจ์•ฝ์ ์€ ์ฃผ๋กœ ๊ฒ€์ฆ๋˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์œผ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์œ„ํ—˜์„ ์ตœ์†Œํ™”ํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , URL์ด ์•ˆ์ „ํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ž…๋ ฅ์„ ๊ฒ€์ฆํ•˜๋Š” ๊ณผ์ •์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฑฐ๋ถ€ ๋ชฉ๋ก(block list)๋ณด๋‹ค ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” URL ๋ชฉ๋ก, ์ฆ‰ ํ—ˆ๊ฐ€ ๋ชฉ๋ก(allow list)์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์‚ฌํ•˜๋Š” ํŽธ์ด ์ข‹๊ฒ ๋„ค์š”.
์ž์„ธํ•œ ๊ถŒ์žฅ ์‚ฌํ•ญ์€ OWASP Unvalidated Redirects and Forwards Cheat Sheet๋ฅผ ์ฐธ์กฐํ•ด์ฃผ์„ธ์š”!

๊ทธ๋Ÿผ ๋‹ค์Œ ์ฃผ์—๋Š” ๋” ์œ ์ตํ•œ "ํ•ดํ‚น ์•Œ๋ ค์ค„๊ฒŒ"๋กœ ๋Œ์•„์˜ฌ๊ฒŒ์š”~ ๐Ÿ˜Ž

โœ๏ธ ํ•ดํ‚น์งน์งน ๋‰ด์Šค๋ ˆํ„ฐ์—์„œ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ๋“ค์€ ์˜ค๋กœ์ง€ ๊ต์œก์ ์ธ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด๋ฅผ ์•…์šฉํ•˜์—ฌ  ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์ฑ…์ž„์€ ๋ณธ์ธ์—๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค.
์ง€์†ํ•ด์„œ ๋” ์ข‹์€ ๋‰ด์Šค๋ ˆํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ ๊ธ์ •์ ์œผ๋กœ ์ƒ๊ฐํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! 
์นด์นด์˜ค๋ฑ…ํฌ 3333-21-5085994 ใ…Žใ……ใ…‡
์˜ค๋Š˜ ์ „ํ•ด๋“œ๋ฆฐ ๋‚ด์šฉ์ด ๋งˆ์Œ์— ๋“œ์…จ๋‚˜์š”?
์ฃผ์œ„ ์นœ๊ตฌ๋“ค์—๊ฒŒ ๋‰ด์Šค๋ ˆํ„ฐ๋ฅผ ์ถ”์ฒœํ•ด์ฃผ์„ธ์š”!
๋‹ค์Œ์ฃผ์—๋„ ์•Œ์ฐฌ ๋‚ด์šฉ์œผ๋กœ ๋Œ์•„์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜™
ํ˜น์‹œ ๋งˆ์Œ์— ์•ˆ๋“œ๋Š” ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‚˜์š”? ์—ฌ๊ธฐ์—์„œ ํ”ผ๋“œ๋ฐฑ์„ ์ „๋‹ฌํ•ด์ฃผ์„ธ์š”!
์—ฌ๋Ÿฌ๋ถ„์˜ ์˜๊ฒฌ๋“ค์„ ์ ๊ทน ๋ฐ˜์˜ํ•ด์„œ ๋”์šฑ ์œ ์ตํ•œ ๋‰ด์Šค๋ ˆํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด๊ฐ€๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ƒ
ํ•ดํ‚ค๋ณด์ด์ฆˆ
hackyboizteam@gmail.com
์„œ์šธ์‹œ ๊ด‘์ง„๊ตฌ ๊ตฐ์ž๋™ 134-33 3์ธต
์ˆ˜์‹ ๊ฑฐ๋ถ€ Unsubscribe