์ƒˆ์†Œ์‹

Game/Bee-box

[Bee-box] HTML injection - Reflected(POST)

  • -
๋ฐ˜์‘ํ˜•

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

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

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

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

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


๋จผ์ € ์‚ฌ์ดํŠธ์—์„œ HTML injection - Reflected(POST) ํ•ญ๋ชฉ์„ ์„ ํƒํ•ด ์ฃผ์„ธ์š”.

๋‚œ์ด๋„๋Š” low๋กœ ์ง€์ •ํ•ด์ค๋‹ˆ๋‹ค.

 

 

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

 

POST ํŽ˜์ด์ง€๋กœ ๋“ค์–ด์™”์Šต๋‹ˆ๋‹ค. 

์ €๋ฒˆ์— ์‹ค์Šตํ•œ GET๋ฐฉ์‹์€ GET๋ฉ”์„œ๋“œ๋กœ HTTP ์š”์ฒญ์„ ํ•˜์˜€๋‹ค๋ฉด,

POST๋ฐฉ์‹์€ POST๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋Š” ๋ณ€์ˆ˜ ๊ฐ’์ด URL์— ๋…ธ์ถœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ ์‹ค์Šต์€ ๋ฒ„ํ”„์Šค์œ„ํŠธ(Burp Suite)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜ ๊ฐ’์„ ์ „๋‹ฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋จผ์ € bee-box์—์„œ ip๋ฅผ ํ™•์ธํ•ด์ค๋‹ˆ๋‹ค. 

 

 

192.168.0.43 ์ ‘์†์„ ํ•ด๋ณผ๊ฒŒ์š”.

 

 

์ ‘์† ํ›„ ๋ฒ„ํ”„์Šค์œ„ํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ต๋‹ˆ๋‹ค.

 

* burp suite์˜ ํ”„๋ฝ์‹œ(proxy)๊ธฐ๋Šฅ์€ ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ์š”์ฒญ ์„ธ์…˜๋งŒ ๊ฐ€๋กœ์ฑˆ๋‹ค. ์‘๋‹ต ์„ธ์…˜๋„ ๊ฐ€๋กœ์ฑ„๋ ค๋ฉด 

Proxy ํ•˜์œ„ ํƒญ์ธ "Options"์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์„ค์ •์„ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค.

 

๋„ค๋ชจ๋ฐ•์Šค ์•ˆ์— ์ฒดํฌํ•ด์•ผํ•จ.

 

์ด์ œ ์ œ PC์— ํ”„๋ก์‹œ ์„ค์ •์„ ํ•ด์ค„๊ฒŒ์š”.

 

 

๊ฒ€์ƒ‰ -> ํ”„๋ก์‹œ

 

์ฃผ์†Œ๋Š” ๋กœ์ปฌ ์ฃผ์†Œ๋กœ ์„ค์ •ํ•ด์ฃผ์‹œ๊ณ , ํฌํŠธ๋ฒˆํ˜ธ๋Š” 8080์œผ๋กœ ๋งž์ถฐ์ฃผ์„ธ์š”.

 

 

ํ”„๋ก์‹œ ์„ค์ •์ด ๋‹ค๋˜์—ˆ๋‹ค๋ฉด, ์ผœ์ฃผ์‹  ํ›„ bee-box์—์„œ Go๋ฅผ ํด๋ฆญํ•ด์ฃผ์„ธ์š”.

๊ทธ์ „์— ! ๋ฒ„ํ”„ ์Šค์œ„ํŠธ์—  intercept is on/off์ค‘ ๊ผญ on์œผ๋กœ ์ผœ์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 

์ด๋ ‡๊ฒŒ ๋ณด๋‚ด์ฃผ๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ด๋Š” HTTP์š”์ฒญ ์ •๋ณด๊ฐ€ ๋ฒ„ํ”„์Šค์œ„ํŠธ์—์„œ ๋ณด์ž…๋‹ˆ๋‹ค.

 

 

๋ฐ์ดํ„ฐ๊ฐ€ ์žกํ˜”๋Š”๋ฐ ๋น„์–ด์žˆ๋„ค์š”, ์ด ๊ณณ์„ ์ €๋ฒˆ GET๋ฐฉ์‹๋•Œ์™€ ๋™์ผํ•˜๊ฒŒ ํƒœ๊ทธ๋ฅผ ์ ์–ด์ค๋‹ˆ๋‹ค. (๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ˆ˜์ •)

 

 

 

์ˆ˜์ •ํ•ด์ฃผ๊ณ  Forward ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์„œ ์š”์ฒญ์„ ๋ณด๋‚ด์ค๋‹ˆ๋‹ค.

 

 

 

 

๋ฒ„ํ”„์Šค์œ„ํŠธ๋ฅผ ์‚ฌ์šฉํ•œ HTML ์ธ์ ์…˜ ๊ณต๊ฒฉ์˜ ๊ฒฐ๊ณผ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €์— h1ํƒœ๊ทธ์™€ img(์ด๋ฏธ์ง€)ํƒœ๊ทธ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์— ์ž…๋ ฅํ–ˆ๋˜ ํƒœ๊ทธ์ฒ˜๋Ÿผ ๋–ด๋‹ค๋ฉด ์„ฑ๊ณต.

 

๋‚œ์ด๋„ ์ค‘

๋‚œ์ด๋„๋ฅผ medium์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ค๋‹ˆ๋‹ค.

 

 

'๋‚œ์ด๋„ ์ค‘' ๋„ GET๋ฉ”์†Œ๋“œ ๋ฐฉ์‹๊ณผ ๋™์ผํ•˜๊ฒŒ HTML์ธ์ ์…˜์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด '<'์™€ '>'๋ฌธ์ž๋ฅผ ํ•„ํ„ฐ๋ง ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ HTMLํƒœ๊ทธ์— ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ž๋ฅผ ์ธ์ฝ”๋”ฉํ•œ ํ›„ ์ž…๋ ฅํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ €๋ฒˆ๊ณผ ๊ฐ™์ด < = %3C, > = %3E๋กœ ์ธ์ฝ”๋”ฉํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

๋ฐ”๋กœ Go๋ฅผ ํด๋ฆญํ•˜์—ฌ ํ”„๋ก์‹œ๋ฅผ ์žก์•„์ค๋‹ˆ๋‹ค.

 

 

์•„๋ž˜์™€ ๊ฐ™์ด ์ธ์ฝ”๋”ฉํ•œ ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅ ํ›„ Forward๋ฅผ ํด๋ฆญํ•˜์—ฌ ์š”์ฒญ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋Ÿฐ๋ฐ ์›ฌ์ผ์ธ์ง€... ์ธ์ฝ”๋”ฉํ•œ ํƒœ๊ทธ๋ฅผ ์ „์†กํ•ด๋„ ์‹คํ–‰์ด ๋˜์งˆ ์•Š๊ณ , ๋ฌธ์ž์—ด์ด ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋˜์—ˆ๋„ค์š”.

๊ทธ ์ด์œ ๋ฅผ ํ™•์ธํ•ด๋ณด๊ธฐ ์œ„ํ•ด์„œ ์›น ํŽ˜์ด์ง€์˜ 'firstname'์ž…๋ ฅ๋ž€์— ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅ ํ›„ ๋ฒ„ํ”„์Šค์œ„ํŠธ๋กœ ์š”์ฒญ ๊ฐ’์„ ๊ฐ€๋กœ์ฑ„์„œ

๋ณ€์ˆ˜์— ์ž…๋ ฅํ•œ ํƒœ๊ทธ๋ฅผ ํ™•์ธํ•ด๋ด…์‹œ๋‹ค.

 

 

์ธ์ฝ”๋”ฉํ•œ ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ณ  Go๋ฅผ ํด๋ฆญํ•ด๋ณด์•˜๋”๋‹ˆ

 

 

์ด๋ ‡๊ฒŒ ๋”๋ธ”์ธ์ฝ”๋”ฉ์ด ์‚ฌ์šฉ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋”๋ณด๊ธฐ
๋”๋ธ” ์ธ์ฝ”๋”ฉ์ด๋ž€?

์ธ์ฝ”๋”ฉ์— ์‚ฌ์šฉ๋˜๋Š” "%" ๋ฌธ์ž๋„ ์ธ์ฝ”๋”ฉ์„ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ

"%"๋ฌธ์ž์˜ ์ธ์ฝ”๋”ฉ ๊ฐ’์€ '%25'์ด๋‹ค. 

 

์ฆ‰ "<"๋ฌธ์ž๋ฅผ ์ธ์ฝ”๋”ฉํ•œ ๊ฐ’์ด %3C์ด๋ฉด, ๋”๋ธ”์ธ์ฝ”๋”ฉํ•œ ๊ฐ’์€ %253C๊ฐ€ ๋œ๋‹ค.

 

 

์ด๋ฒˆ์—” ๋”๋ธ”์ธ์ฝ”๋”ฉ ํ•œ ๊ฐ’์„๋„ฃ๊ณ  Forward๋ฅผ ํด๋ฆญํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

 

์ •์ƒ์ ์œผ๋กœ ์‚ฝ์ž…ํ•œ ํƒœ๊ทธ๊ฐ€ ์ถœ๋ ฅ๋˜์—ˆ์œผ๋ฏ€๋กœ, '๋‚œ์ด๋„-์ค‘' ๋„ ์„ฑ๊ณต!

 

๋‚œ์ด๋„ ์ƒ

 

๋‚œ์ด๋„ ์ƒ ๋‹จ๊ณ„์—์„œ๋Š” low(๋‚œ์ด๋„ ํ•˜), midium(๋‚œ์ด๋„ ์ค‘) ์ฒ˜๋Ÿผ ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ๋„ ๋ฌธ์ž์—ด๋กœ ์ถœ๋ ฅ์ด ๋ฉ๋‹ˆ๋‹ค.

๊ทธ ์ด์œ ๋Š” "HTML injection - Reflected(GET)" ๋ฐฉ์‹๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์šฐํšŒ ๊ณผ์ •์„ ๊ฑฐ์น˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

 

bee-box์— ํ„ฐ๋ฏธ๋„๋กœ ์ ‘๊ทผํ•˜์—ฌ, htmi_post.php์—์„œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด๋ณด์•˜๋”๋‹ˆ,

 

'xss_check_3' ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์šฐํšŒํ•˜๊ณ  ์žˆ๋„ค์š”.

์ด ํ•จ์ˆ˜๋Š” Get๋ฐฉ์‹์—์„œ ์šฐํšŒํ• ๋•Œ ์“ฐ์˜€๋˜ ํ•จ์ˆ˜์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋กœ, 

htmlspecialchars ํ•จ์ˆ˜๋กœ ์ž…๋ ฅ ๊ฐ’์„ ์šฐํšŒํ•ด์ค๋‹ˆ๋‹ค.

(์œ„ ํ•จ์ˆ˜์— ๊ด€ํ•œ ๋‚ด์šฉ์€ HTML์ธ์ ์…˜-GET์—์„œ ์ž์„ธํžˆ ๋‹ค๋ค˜์œผ๋‹ˆ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

https://lucete1230-cyberpolice.tistory.com/60)


๋”ฐ๋ผ์„œ! HTML์ธ์ ์…˜์„ ๋ง‰์œผ๋ ค๋ฉด ์œ„์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ HTMLํƒœ๊ทธ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์ž๋“ค์„

HTMLํƒœ๊ทธ๋กœ ์ธ์‹๋˜์ง€ ์•Š๊ฒŒ UTF-8๋กœ ์ธ์ฝ”๋”ฉ์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ต๋‹ˆ๋‹ค!

๋‹ค๋“ค ์ˆ˜๊ณ ํ•˜์…จ์–ด์š” ใ…Žใ…Ž

 

๋ฐ˜์‘ํ˜•
Contents

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

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