์ƒˆ์†Œ์‹

Game/Bee-box

[Bee-box] ๊ธฐํƒ€ ์ธ์ ์…˜ ๊ณต๊ฒฉ- php ์ฝ”๋“œ ์ธ์ ์…˜

  • -
๋ฐ˜์‘ํ˜•

OS ์ปค๋งจ๋“œ ์ธ์ ์…˜ ์‹ค์Šต์— ์ด์–ด์„œ,

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

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

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

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


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

 

 

 ๋จผ์ € PHP code Injection์„ low๋ชจ๋“œ๋กœ ๋“ค์–ด๊ฐ€์ฃผ์„ธ์š”.

 

 

๋“ค์–ด๊ฐ€๋ณด๋ฉด, ์œ„์™€ ๊ฐ™์€ ์ฐฝ์ด ๋œจ๋Š”๋ฐ, message...์„ ํด๋ฆญํ•˜๋ฉด test๋ผ๋Š” ๋ฌธ์ž์—ด์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

GET๋ฉ”์„œ๋“œ๋กœ ์š”์ฒญํ•˜๊ธฐ ๋•Œ๋ฌธ์— URL์— 'message'๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

 

 

message๋ณ€์ˆ˜์— ์ž…๋ ฅ๋œ test ๋Œ€์‹  ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜๋ฉด phpi.php ํŽ˜์ด์ง€์— ์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

 

 

PHP์—์„œ exec() ํ•จ์ˆ˜๋‚˜ eval() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ ์„ธ๋ฏธ์ฝœ๋ก (;) ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ทจ์•ฝ์ ์ด ์žˆ๊ธฐ๋•Œ๋ฌธ์—,

์ทจ์•ฝ์ ์ด ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•˜๋ ค๋ฉด ์„ธ๋ฏธ์ฝœ๋ก ๊ณผ system ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์ค๋‹ˆ๋‹ค.

 

system ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด ํ˜•ํƒœ์˜ ๋ช…๋ น์–ด๋ฅผ ์ธ์ž ๊ฐ’์œผ๋กœ ๋ฐ›์•„์„œ ํ•ด๋‹นํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰์‹œ์ผœ ์ฃผ๊ฒŒ ๋˜์ฃ .

 

์œ„์™€ ๊ฐ™์ด URL์— ์ž…๋ ฅํ•ด์ฃผ๋ฉด 'whoami' ๋ช…๋ น์–ด ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰ ๊ณต๊ฒฉ์ด ๋จนํ˜”๋‹ค๋Š” ๋œป์ด์ฃ .

 

--> PHP ์ฝ”๋“œ ์ธ์ ์…˜ ์„ฑ๊ณต

 

๋”๋ณด๊ธฐ

- ์‹œ์Šคํ…œ ์ •๋ณด๋ฅผ ํš๋“ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๋ช…๋ น์–ด๋“ค ์‚ฌ์šฉ ok

- cat ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›ํ•˜๋Š” ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

- system ํ•จ์ˆ˜ ์™ธ์—๋„ shell_execํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

- ๊ณต๊ฒฉ์ž๋Š” ํ˜„์žฌ ์›น ๊ถŒํ•œ(www)์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ƒ์œ„ ๊ถŒํ•œ์˜ ์‚ฌ์šฉ์ž๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์ธ ๊ฒฝ์šฐ์—๋Š” ๊ฒฐ๊ณผ๋ฅผ    ์ถœ๋ ฅ ํ•˜์ง€ ์•Š๋Š”๋‹ค. (ex : passwdํŒŒ์ผ์€ -> ์›น๊ถŒํ•œ์œผ๋กœ ๊ฐ€๋Šฅ, shadowํŒŒ์ผ -> ๋ถˆ๊ฐ€๋Šฅ)

   --> ์—ด๋žŒํ•˜๋ ค๋ฉด ์‹œ์Šคํ…œ์— ์นจํˆฌํ•˜์—ฌ ๊ถŒํ•œ ์ƒ์Šน ๊ณต๊ฒฉ ์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•จ.

 

> ์ด๋ ‡๊ฒŒ ์‹œ์Šคํ…œ ์ •๋ณด๋ฅผ ํš๋“ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ •๋ณด๋ฅผ ์ถœ๋ ฅ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋„ท์บฃ์„ ์ด์šฉํ•˜์—ฌ ์ฟ ํ‚ค์ •๋ณด ํƒˆ์ทจํ•˜๊ธฐ.

 

๋„ท์บฃ์„ ์‚ฌ์šฉํ•˜๋ฉด ์•…์˜์ ์ธ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ์„œ๋ฒ„์— ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

์šฐ์„  ์นผ๋ฆฌ ๋ฆฌ๋ˆ…์Šค์— ์ ‘์†ํ•œ๋‹ค. (root๊ถŒํ•œ์œผ๋กœ)

 

 

์ˆœ์„œ : ์นผ๋ฆฌ์—์„œ ํฌํŠธ๋ฒˆํ˜ธ ์ง€์ • (listen๋ชจ๋“œ ์„ค์ •) -> bee-box์—์„œ ํฌํŠธ๋กœ ์ ‘์†

 

 

๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ์•Œ์•„์„œ url์ด ์ธ์ฝ”๋”ฉ ๋œ๋‹ค.

 

 

์œ„์™€ ๊ฐ™์ด ์ž…๋ ฅํ•ด์ค€ ํ›„ ๋‹ค์‹œ ์นผ๋ฆฌ๋กœ ๋Œ์•„์™€ whoami ์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ์‹œ์Šคํ…œ์— ์นจํˆฌ ์„ฑ๊ณต.

 

๋”๋ณด๊ธฐ

์นผ๋ฆฌ ๋ฆฌ๋ˆ…์Šค์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ system ํ•จ์ˆ˜๋กœ ๋„ท์บฃ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ๋‹ค.

๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ์—ฐ๊ฒฐํ•  ์นผ๋ฆฌ ๋ฆฌ๋ˆ…์Šค์˜ ip์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

 

- e ์˜ต์…˜์€ exec์˜ ์ค„์ž„๋ง๋กœ, ์˜ต์…˜์— ์ž…๋ ฅํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

  (bin/bash๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์นผ๋ฆฌ๋ฆฌ๋ˆ…์Šค์—์„œ ๋ช…๋ น์–ด ํ•ด์„๊ธฐ bash์…ธ์„ ์‚ฌ์šฉํ•จ)

 

์นจํˆฌ์— ์„ฑ๊ณตํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด echo ๋ช…๋ น์–ด๋กœ ๊ฐ„๋‹จํ•œ ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ ์ƒ์„ฑ ํ›„, ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ls | grep attack.html ๋กœ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ฐพ์•„๋ณธ๋‹ค.

์ƒ์„ฑ์ด ๋œ ๊ฒƒ์„ ํ™•์ธ ํ›„ ์ƒ์„ฑํ•œ ํŒŒ์ผ๋กœ ์ ‘์† ํ•œ๋‹ค.

 

 

์ ‘์†ํ•˜๋ฉด ์‚ฌ์šฉ์ž์˜ ์ฟ ํ‚ค ๊ฐ’์ด ๊ฒฝ๊ณ ์ฐฝ์œผ๋กœ ์ถœ๋ ฅ๋œ๋‹ค.  

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

 

์ด๋ฅผ ์•…์šฉํ•˜๋ฉด ์ฟ ๊ธฐ ์ •๋ณด ๋ฟ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž ํ”ผ์‹ฑ์„ ์œ„ํ•œ ์กฐ์ž‘๋œ ํŽ˜์ด์ง€๋‚˜

์•…์„ฑ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ํŽ˜์ด์ง€๋„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

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

 

 

์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด, '๋‚œ์ด๋„ ํ•˜' ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ '๋‚œ์ด๋„ ์ค‘', '๋‚œ์ด๋„ ์ƒ' ์—์„œ๋Š” message๋ณ€์ˆ˜์— ์„ธ๋ฏธ์ฝœ๋ก ์„ ์‚ฌ์šฉํ•˜์—ฌ

๋‹ค๋ฅธ ๋ช…๋ น์–ด๋ฅผ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ฃผ์ž…ํ•˜๋Š” ๊ณต๊ฒฉ์ด ์‹คํ–‰ ๋˜์ง€ ์•Š๋„๋ก ํ•˜์˜€๋‹ค.

 

์ฝ”๋“œ๋กœ ๋ณด๋ฉด '๋‚œ์ด๋„ ์ค‘' ๋ถ€ํ„ฐ๋Š” 'htmlspecialchars'ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 'message'๋ณ€์ˆ˜์˜ ์ž…๋ ฅ ๊ฐ’์„ ํ•„ํ„ฐ๋ง ํ•œ๋‹ค.

 

'htmlspecialchars'ํ•จ์ˆ˜๋Š” ๋‘ ๋ฒˆ์งธ ์ธ์ž์— 'ENT_QUOTES',๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…(xss)์— ์‚ฌ์šฉ๋˜๋Š”

ํŠน์ˆ˜ ๋ฌธ์ž๋“ค์„ HTML ์—”ํ‹ฐํ‹ฐ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

 

(์—”ํ‹ฐํ‹ฐ ์ฝ”๋“œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ถ๊ธˆํ•˜์‹œ๋ฉด : https://alonehistory.tistory.com/12) (https://nm817.tistory.com/6_)  

>>์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”!

 

 

๋”ฐ๋ผ์„œ ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ๋„ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฌธ์ž๋กœ ์ธ์‹ํ•˜๊ฒŒ ๋œ๋‹ค.

 

 

์ฆ‰ --> htmlspecialcharsํ•จ์ˆ˜์— ๋‘๋ฒˆ์งธ ์ธ์ž์— ENT_QUOTES ์ถ”๊ฐ€ํ•˜์—ฌ ๋Œ€์‘ํ•˜๊ธฐ!

 

๋”๋ณด๊ธฐ
์ถœ์ฒ˜ : php & mysql ๋‹Œ์ž๋น„๋ฒ•์„œ

 

๋ฐ˜์‘ํ˜•
Contents

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

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