์ƒˆ์†Œ์‹

Game/Bee-box

[Bee-box] ๊ธฐํƒ€ ์ธ์ ์…˜ ๊ณต๊ฒฉ- iframe

  • -
๋ฐ˜์‘ํ˜•

HTML injection-Stored(Blog)๋ฐฉ์‹์— ์ด์–ด์„œ,

์˜ค๋Š˜์€ ์ธ์ ์…˜ ๊ธฐ๋ฒ• ์ค‘ iframe ์ธ์ ์…˜์„ ์‹ค์Šตํ•ด๋ณผ๊ฒŒ์š”

์‹ค์Šตํ•˜๋Š” ๋ชจ๋“  ๊ณต๊ฒฉ์€ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

ํ—ˆ์šฉ๋ฐ›์ง€ ์•Š์€ ์„œ๋น„์Šค ๋Œ€์ƒ์— ํ•ดํ‚น์„ ์‹œ๋„ํ•˜๋Š” ํ–‰๋™์€ ๊ธˆ์ง€ํ•˜๋ฉฐ,

๋ชจ๋“  ๋ฒ•์  ์ฑ…์ž„์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์žˆ๋Š” ๊ฒƒ์„ ๋ช…์‹ฌํ•ด์ฃผ์„ธ์š”


๋‚œ์ด๋„ ํ•˜

iframe์€ HTML ๋ฌธ์„œ ์•ˆ์—์„œ ๋˜ ๋‹ค๋ฅธ HTML ๋ฌธ์„œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํƒœ๊ทธ๋กœ,

์–ด๋Š ์œ„์น˜๋“  ์ƒ๊ด€์—†์ด ์ธ์ ์…˜ ๊ณต๊ฒฉ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋…๋ฆฝ์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— HTML ์ธ์ ์…˜ ์ค‘์—์„œ๋„ ๊ณต๊ฒฉ์— ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

๋”๋ณด๊ธฐ

ํŽ˜์ด์ง€ ๋‚ด์— iframe ํƒœ๊ทธ๋ฅผ ์ฃผ์ž…ํ•œ๋‹ค. --> ์ฃผ๋กœ ์•…์„ฑ URL์„ ์‚ฝ์ž… ํ›„ ์‚ฌ์ด์ฆˆ๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์ˆจ๊ธด๋‹ค.

--> ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜๋„์น˜ ์•Š๊ฒŒ ์•…์„ฑ์‚ฌ์ดํŠธ๋กœ ์ ‘์†ํ•˜๊ฒŒ๋” ํ•˜๊ฑฐ๋‚˜, ๊ฒฝ๊ณ ์ฐฝ์„ ๋„์šธ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๋จผ์ € low๋‹จ๊ณ„๋กœ 'iframei.php' ํŽ˜์ด์ง€๋กœ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.

'iframei.php' ํŽ˜์ด์ง€๋Š” GET ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก๋ฐ›์œผ๋ฏ€๋กœ URL์— ๋ณ€์ˆ˜๊ฐ€ ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

 

 

๋ณ€์ˆ˜๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด 'ParamUrl', 'ParamWidth', 'ParamHeight' ์ด ์„ธ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ParamUrl -> ์—ฐ๊ฒฐํ•  ์ฃผ์†Œ ๋ฐ›์•„์˜ค๊ธฐ.

ParamWidth, ParamHeight -> ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•  ํฌ๊ธฐ ์ง€์ •ํ•˜๊ธฐ.

 

 

๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋กœ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด

 

 

iframe ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 'robots.txt' ๋ผ๋Š” ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ™•์ธํ•ด์ฃผ๋„ค์š”.

์•„๊นŒ ์œ„์— URL์—์„œ ํ™•์ธ ํ•ด๋ณด๋ฉด, ParamUrl ๋ณ€์ˆ˜์˜๊ฐ’์€ robot.txt์ž…๋‹ˆ๋‹ค.

 

์ด ๋ณ€์ˆ˜์— ์ž…๋ ฅํ•œ ๋‚ด์šฉ์ด iframe ํƒœ๊ทธ์— ์ถ”๊ฐ€๋˜์–ด ๊ธฐ์กด iframe ํƒœ๊ทธ๋ฅผ ๊ฐ•์ œ๋กœ ๋‹ซ๊ณ  URL์— ๋…ธ์ถœ๋œ ๋ณ€์ˆ˜์— ์•…์˜์ ์ธ

iframe ํƒœ๊ทธ๋ฅผ ์ฃผ์ž…ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

- HTML ํŽ˜์ด์ง€ ์ƒ์„ฑํ•˜๊ธฐ -

 

๋จผ์ € ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋ฅด๊ฒŒ ์•…์˜์ ์ธ ํŽ˜์ด์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ณต๊ฒฉ์„ ํ•˜๋ ค๋ฉด HTML ํŽ˜์ด์ง€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

vmware > bee-box ์—์„œ ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•˜์—ฌ, ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์„œ ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

 

> ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰ ํ›„ ๋น„๋ฐ•์Šค์—์„œ ์ง€์ •ํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋””๋ ‰ํ„ฐ๋ฆฌ ์œ„์น˜๋กœ ์ด๋™ํ•ด์ค๋‹ˆ๋‹ค.

 

 

* cd -> change Directory

 

> vi ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 'bad.html' ์ด๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค.

(์ €๋Š” ๋จผ์ € sudo su ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ฃจํŠธ๊ถŒํ•œ์„ ๋นŒ๋ ธ์ง€๋งŒ, ๊ทธ๋ ‡์ง€ ์•Š์œผ์‹  ๋ถ„์€  sudo vi bad.html ์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.)

 

์œ„์™€ ๊ฐ™์ด ํŒŒ์ผ ์ƒ์„ฑ ํ›„ ๋‚ด์šฉ์„ ์ž…๋ ฅํ•ด์ฃผ์‹œ๊ณ , 

"Esc -> Shift + :  " ๋ฅผ ๋ˆ„๋ฅธ ํ›„ " wq! " ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋‚ด์šฉ์„ ์ €์žฅํ•ด์ค๋‹ˆ๋‹ค.

 

์ œ๋Œ€๋กœ ์ €์žฅ์ด ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์ค๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ! HTML ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ณ  ๋‚˜๋ฉด ๋‹ค์‹œ iframei.php ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜์—ฌ, URL์— ์•…์˜์ ์ธ ํŽ˜์ด์ง€๋ฅผ ํ˜ธ์ถœํ•ด๋ด…์‹œ๋‹ค.

 

๋จผ์ € ์›๋ž˜ ๊ธฐ์กด์˜ URL ์ธ๋ฐ์š”, ์ž์„ธํžˆ ๋ณด๋ฉด

 

 

์ด๋ ‡๊ฒŒ ๋˜๋„ค์š”. 

์ˆ˜์ • ํ›„ URL๋„ ์œ„์— ํ‘œ์‹œํ•ด ๋‘์—ˆ๋Š”๋ฐ์š”.

๊ธฐ์กด์˜ ParamUrl ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ์›๋ž˜ ํŽ˜์ด์ง€์˜ iframe ํƒœ๊ทธ์— ์ถ”๊ฐ€๋˜๊ธฐ ๋•Œ๋ฌธ์—

"></iframe> ์„ ์ž…๋ ฅํ•˜์—ฌ ์›๋ž˜ ํŽ˜์ด์ง€์˜ iframe ํƒœ๊ทธ๋ฅผ ๋‹ซ์•„์ฃผ๊ณ , bad.html ํŽ˜์ด์ง€๋ฅผ src์†์„ฑ์— ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ url์„ ์ž…๋ ฅํ•ด ์ฃผ๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด 

 

 

ํ™”๋ฉด๊ณผ ๊ฐ™์ด Succed ๋ผ๊ณ  ๊ฒฝ๊ณ ์ฐฝ์ด ๋œจ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. -> ๋œจ๋ฉด ๊ณต๊ฒฉ ์„ฑ๊ณต

 

ํ™•์ธ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด

 

 

robots.txt ๋‚ด์šฉ ์˜†์— bad.html์— ์ž…๋ ฅํ•œ ํ—ค๋”ฉ ํƒœ๊ทธ "<h1>" ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•˜๊ณ  ๊ทธ์˜†์—๋Š” ์ •์ƒ iframe ํƒœ๊ทธ์— ๋“ค์–ด๊ฐ€๋Š”

๋„“์ด์™€ ๋†’์ด ์†์„ฑ์„ ๋ฌธ์ž์—ด๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

--> ์ด๋Š” ์ •์ƒ iframeํƒœ๊ทธ๋ฅผ ๊ฐ•์ œ๋กœ ๋‹ซ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์†์„ฑ์ด ๋…ธ์ถœ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

--> ParamWidth ๋ณ€์ˆ˜์— iframe ํƒœ๊ทธ๋ฅผ ์ฃผ์ž…ํ•˜๋ฉด ์ •์ƒ iframe ํƒœ๊ทธ์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์ด๊ธฐ ๋•Œ๋ฌธ์— "> ๋งŒ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๊ณต๊ฒฉ ์„ฑ๊ณต ํ›„ [F12] ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋กœ ๋“ค์–ด๊ฐ€์„œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜๋ฉด

 

 

div id="main" ์— ์›๋ž˜ ์žˆ๋˜ iframeํƒœ๊ทธ๊ฐ€ ๋‹ซํžˆ๊ณ  ์•…์˜์ ์œผ๋กœ ์ฃผ์ž…ํ•œ iframeํƒœ๊ทธ๊ฐ€ ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์‚ฌ์šฉ์ž ๋ชฐ๋ž˜ iframe ์ธ์ ์…˜ ๊ณต๊ฒฉ์„ ํ•˜๊ธฐ ์œ„ํ•ด 'width'์†์„ฑ๊ณผ  'height' ์†์„ฑ์„ 0์œผ๋กœ ๋ณ€๊ฒฝํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

์ด๋ ‡๊ฒŒ ์‚ฌ์ด์ฆˆ๋ฅผ 0์œผ๋กœ ์ง€์ •ํ•˜๊ณ  ์‹คํ–‰ ์‹œ์ผœ๋ณด๋ฉด 

 

 

์•„๊นŒ์™€ ๋™์ผํ•˜๊ฒŒ succeed๋ผ๋Š” ๊ฒฝ๊ณ ์ฐฝ์€ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด์ „๊ณผ ๋‹ค๋ฅด๊ฒŒ bad.html์— ์ž…๋ ฅํ•œ <h1> ํƒœ๊ทธ ๋‚ด์šฉ์ด ์ถœ๋ ฅ๋˜์ง€ ์•Š๋„ค์š”..!

 

 

์ด๋ ‡๊ฒŒ ์ž…๋ ฅํ–ˆ๋˜ ํ—ค๋”ฉํƒœ๊ทธ๋Š” ์ถœ๋ ฅ๋˜์ง€ ์•Š์•˜๋„ค์š”.

--> ๋”ฐ๋ผ์„œ ๊ณต๊ฒฉ์ž๋Š” iframe ์ธ์ ์…˜์œผ๋กœ ๊ฒฝ๊ณ ์ฐฝ์„ ์ถœ๋ ฅํ•˜์—ฌ ์›๋ž˜ ์‚ฌ์ดํŠธ์—์„œ ์ •์ƒ์ ์ธ ์‘๋‹ต์„ ์ฃผ๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž๋ฅผ 

์†์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์•ˆ์— ๋‚ด์šฉ์€ ์ˆจ๊ธฐ๊ณ , ๊ฒฝ๊ณ ์ฐฝ๋งŒ ์ถœ๋ ฅ์ด ๋จ)

 

๊ทธ๋Ÿฌ๋‚˜ ์œ„ ํ™”๋ฉด๋งŒ ๋ณด๋ฉด, iframe ์‚ฌ์ด์ฆˆ๊ฐ€ ์ด์ƒํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋Š๋‚„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

ํ™”๋ฉด์— ์ด์ƒํ•œ ์ ์„ ๋ˆˆ์น˜์ฑ„์ง€ ๋ชปํ•˜๊ฒŒ ๋†’์ด ์†์„ฑ์„ ์•„์ฃผ ํฐ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค.

 

 

์›๋ž˜ url ๋ณ€์ˆ˜์— ๋†’์ด ๊ฐ’์„ ์ง€์ •ํ•ด์ฃผ๊ณ  ์‹คํ–‰์‹œ์ผœ์ฃผ๋ฉด

 

 

์ด๋ ‡๊ฒŒ ์Šคํฌ๋กค๋„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‚ด๋ ค๊ฐ€๊ณ , ์ด์ „๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์ •์ƒ์ ์ธ ์›น ํŽ˜์ด์ง€๋กœ ๋ณด์ด๋„ค์š”.

--> ๊ณต๊ฒฉ ์„ฑ๊ณต

 

 

 

๋Œ€์‘ ๋ฐฉ์•ˆ

 

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

 

 

๊ฐœ๋ฐœ์ž ๋ชจ๋“œ๋กœ ๋“ค์–ด๊ฐ€๋ด๋„ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.. 

์ด์œ ๋Š” ๋‚œ์ด๋„ ์ƒ์—์„œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ์ „์— ์šฐํšŒ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๊ธฐ ๋•Œ๋ฌธ์—,

์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ํƒœ๊ทธ๋กœ ํ•ด์„ํ•˜์ง€ ์•Š์•„์„œ ์ธ๋ฐ์š”.

 

iframei.php ํŽ˜์ด์ง€ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด

 

 

'๋‚œ์ด๋„ ํ•˜'์™€ ๋‹ค๋ฅด๊ฒŒ '์ค‘' ๊ณผ '์ƒ' ์—์„œ๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

(xss_check ํ•จ์ˆ˜๋Š” functions_external.php์— ์ •์˜๋˜์–ด์žˆ์–ด์š”.)

 

'๋‚œ์ด๋„ ์ค‘' ์€ addslashesํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์šฐํšŒํ•˜์˜€๊ณ ,

 

'๋‚œ์ด๋„ ์ƒ' ์—์„œ๋Š” htmlspecialchars ํ•จ์ˆ˜๋กœ ์ž…๋ ฅ๊ฐ’์„ ์šฐํšŒํ•˜๋„ค์š”!

 

ํ•ญ์ƒ injection๊ธ€๋งˆ๋‹ค ๋‚˜์˜ค๋Š” ์ด ํ•จ์ˆ˜๋Š”! HTML์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŠน์ˆ˜๋ฌธ์ž๋ฅผ UTF-8๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ iframe ์ธ์ ์…˜์„ ๋ง‰์œผ๋ ค๋ฉด htmlspecialchars ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ iframe ํƒœ๊ทธ์— ์‚ฌ์šฉํ•˜๋Š”

๋ฌธ์ž๋“ค์„ HTMLํƒœ๊ทธ๋กœ ํ•ด์„ํ•˜์ง€ ์•Š๊ฒŒ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ UTF-8๋กœ ์ธ์ฝ”๋”ฉ ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.