Archive for Dev. (junyup2)

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

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

[๊ธฐ๋ก์ผ์ง€] ๐Ÿ“š 14์ฃผ์ฐจ (File Upload ์ทจ์•ฝ์ (≈ Web Shell))

Gearvirus(junyup2) 2024. 2. 7. 23:04

File Upload ์ทจ์•ฝ์ 

๊ณต๊ฒฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ž„์˜์˜ ํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฒฉ์ด๋‹ค.

 

๋ฐœ์ƒ ์›์ธ

ํŒŒ์ผ์„ ์—…๋กœ๋“œ ๋ฐ›์„ ๋•Œ์— ๊ฒ€์ฆ · ๊ฒ€์‚ฌ๋ฅผ ์•ˆํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.

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

ex) ํ”„๋กœํ•„ ์‚ฌ์ง„

์ด๋ฏธ์ง€ ํŒŒ์ผ ์ „์šฉ
(์ด๋ฏธ์ง€ ํŒŒ์ผ๋งŒ ๋ฐ›์œผ๋ ค ํ–ˆ์ง€๋งŒ ๋‹ค๋ฅธ ํŒŒ์ผ๋“ค๋„ ์˜ฌ๋ผ๊ฐ€๋Š” ๋ฌธ์ œ)

 

๋ฐœ์ƒ ์œ„์น˜

ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด๋ผ๋ฉด ์–ด๋””๋“ ์ง€ ๊ฐ€๋Šฅํ•˜๋‹ค.

ex) ํ”„๋กœํ•„, ๊ฒŒ์‹œํŒ(ํŒŒ์ผ ์—…๋กœ๋“œ), ์„œ๋ฅ˜ ์ œ์ถœ, ์‹ ๋ถ„์ฆ ์‚ฌ์ง„(์€ํ–‰ ์•ฑ) ๋“ฑ๋“ฑ..

Burp Suite๋ฅผ ์ด์šฉํ•˜์—ฌ ์–ด๋–ค ์›น ์š”์ฒญ์ด ๊ฐ€๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ(Params)์— ํŒŒ์ผ์ด ์˜ฌ๋ผ๊ฐ€๋Š”์ง€ ํ™•์ธํ•ด์•ผํ•œ๋‹ค.

 

๊ณต๊ฒฉ ์‹œ๋‚˜๋ฆฌ์˜ค

๊ทธ๋ ‡๋‹ค๋ฉด File Upload ๊ณต๊ฒฉ์œผ๋กœ ๋ญ˜ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?!

ํŒŒ์ผ ์—…๋กœ๋“œ๊ฐ€ ์žˆ๋Š”๋ฐ ์ œํ•œ์ด ์—†๋‹ค๋ฉด(Unlimited)?! ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ณต๊ฒฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

DoS (์„œ๋น„์Šค ๊ฑฐ๋ถ€) ๊ณต๊ฒฉ / ์›น ์‰˜(Web Shell) / ์•…์„ฑ ์ฝ”๋“œ ์—…๋กœ๋“œ / ๋ฐฑ๋„์–ด / ์•…์„ฑ ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜ ํŒŒ์ผ

 

1. ์„œ๋ฒ„ ์ธก ์‹คํ–‰ ํŒŒ์ผ

Server Side Script vs Client Side Script

Server Side Script : ๋ฐฑ์—”๋“œ(php, asp, jsp, python, node.js, etc.)
Client Side Script : ํ”„๋ก ํŠธ์—”๋“œ(html, css, javascript)

 

์„œ๋ฒ„ ์ธก ์‹คํ–‰ ํŒŒ์ผ์€ ์›น ์‰˜, ์•…์„ฑ์ฝ”๋“œ, ์•…์„ฑ ํ”„๋กœ๊ทธ๋žจ ๋“ฑ๋“ฑ์„ ์˜ˆ๋ฅผ ๋“ค ์ˆ˜ ์žˆ๋‹ค.

Web Server - WAS - DB

์„œ๋ฒ„์—์„œ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

ex) php๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ฒ„๋ผ๋ฉด - php์ฝ”๋“œ๋ฅผ ์„œ๋ฒ„์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅ

์„œ๋ฒ„์—์„œ ์ด์šฉ๋œ ์–ธ์–ด๋กœ ๋งŒ๋“ค์–ด์ง„ ์ฝ”๋“œ๋งŒ ํ•ด์„(์‹คํ–‰)์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ์–ธ์–ด๋ฅผ ์ด์šฉํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

ex) python ํŒŒ์ผ์„ ์˜ฌ๋ ค๋„ python์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ์‹คํ–‰๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ

(์ฆ‰, ๊ณต๊ฒฉ ์„œ๋ฒ„์— ๋Œ€ํ•œ ๊ตฌ์„ฑ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค.)

์„œ๋ฒ„์ธก ์‹คํ–‰ ํŒŒ์ผ์„ ์‹คํ–‰ ์‹œํ‚ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

๋‚ด๊ฐ€ ์„œ๋ฒ„์— ์›ํ•˜๋Š” ๋ช…๋ น์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋‹ค.
-> ๊ทธ ์„œ๋ฒ„๋Š” ๋‚ด๊บผ๋‹ค.
->-> ๊ทธ ์„œ๋ฒ„๋ฅผ ์žฅ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿผ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์„œ๋ฒ„์ธก ์‹คํ–‰ํŒŒ์ผ์„ ์‹คํ–‰ ์‹œํ‚ค๋Š” ๊ฒƒ์ผ๊นŒ?

test.php

<?php
badCode
?>

์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ ค๊ณ  ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.

http://domain.com/test.php 

์œ„์™€ ๊ฐ™์ด ํ•ด๋‹น ๊ฒฝ๋กœ์— ์ ‘์†ํ•œ๋‹ค๋ฉด test.php ํŒŒ์ผ์„ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด ๋œ๋‹ค. ์ด ๊ฒฝ์šฐ ์„œ๋ฒ„๋Š” ์œ„์˜ ํŒŒ์ผ ์ž์ฒด๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚ด๋ถ€์— ์ž‘์„ฑ๋œ ๋‚ด์šฉ์„ ์›น ์„œ๋ฒ„์—์„œ ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

ํŒŒ์ผ ์ž์ฒด๋ฅผ ์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์‹คํ–‰ ์‹œ์ผœ์„œ ์ค€๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

<?php
์ •๋ง ๋‚˜์œ ์ฝ”๋“œ
์ด๊ฑด ์ง„์งœ ์‹ฌ๊ฐํ•œ ์ฝ”๋“œ
?>

์„œ๋ฒ„์— test.php๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ฒฝ์šฐ์—, ์„œ๋ฒ„๋Š” "๋‚ด๊ฐ€ ์ฒ˜๋ฆฌํ•ด์•ผ ๊ฒ ๊ตฐ." ํ•˜๊ณ  ๋‚ด๋ถ€์˜ ์ฝ”๋“œ๋ฅผ ์ „๋ถ€ ์‹คํ–‰ ์‹œํ‚จ ๋’ค์— ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋‚ด์ค€๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ ์„œ๋ฒ„์— ์›ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

 

2. Phishing ์œ ๋„ : HTML ํŒŒ์ผ

ex) login.php

๊ณต๊ฒฉ์ž ์„œ๋ฒ„๋กœ ๋กœ๊ทธ์ธ ์ •๋ณด๋ฅผ ๋ณด๋‚ด๊ฒŒ ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.

์šฐ๋ฆฌ๊ฐ€ ๋งŒ์•ฝ ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋„๋ฉ”์ธ์˜ ๊ฒฝ๋กœ์—์„œ ์œ„์™€ ๊ฐ™์€ ์ด๋ฆ„์˜ ํŒŒ์ผ์ด ์˜จ๋‹ค๋ฉด? ์•Œ์•„ ์ฐจ๋ฆฌ๊ธฐ ์–ด๋ ค์šธ ๊ฒƒ์ด๋‹ค. 

naver.com/login.php

์œ„์™€ ๊ฐ™์€ ๊ฒฝ๋กœ์—์„œ ์˜จ๋‹ค๋ฉด ์˜์‹ฌ์กฐ์ฐจ ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณต๊ฒฉ์ž๋Š” ์ด์šฉ์ž๋ฅผ ํ”ผ์‹ฑ ์‚ฌ์ดํŠธ๋กœ ์œ ๋„ํ•˜์—ฌ ์ •๋ณด๋ฅผ ๋นผ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

 

3. Deface ๊ณต๊ฒฉ

๋””ํŽ˜์ด์Šค(Deface) ์˜ ์˜์–ด ๋‹จ์–ด๋Š” '์™ธ๊ด€์„ ํ›ผ์†ํ•˜๋‹ค' ๋ผ๋Š” ๋œป์ด๋‹ค. ์ด ๋ง ๊ทธ๋Œ€๋กœ๊ฐ€ ๋ฐ”๋กœ ๋””ํŽ˜์ด์Šค ๊ณต๊ฒฉ์ด๋‹ค.

์˜์–ด ๋‹จ์–ด deface์˜ ์˜๋ฏธ๋ฅผ ์›น์‚ฌ์ดํŠธ์— ์ ์šฉํ•ด ๋ณด๋ฉด ์ดํ•ด๊ฐ€ ์‰ฝ๋‹ค. 

์›น ์‚ฌ์ดํŠธ์˜ ์ฒซ ํ™”๋ฉด, ์ฆ‰ ํ™ˆํŽ˜์ด์ง€๋ฅผ ํ•ด์ปค๊ฐ€ ๋งˆ์Œ๋Œ€๋กœ ๋ฐ”๊พธ๊ณ  ํ•ดํ‚น์„ ์„ฑ๊ณตํ–ˆ์Œ์„ ์•Œ๋ฆฌ๋Š” ๊ณต๊ฒฉ ํ˜•ํƒœ๋ฅผ ๋งํ•œ๋‹ค. 

index ํŒŒ์ผ (๋ฎ์–ด์“ฐ๊ธฐ) - ์ฒซ ํ™”๋ฉด์„ ๋ณ€์กฐ

'ํ™”๋ฉด ๋ณ€์กฐ' ๊ณต๊ฒฉ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์ด๋‹ค.

๋ณ€์กฐ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ์‹์œผ๋กœ๋Š” ๊ด€๋ฆฌ ๊ถŒํ•œ์„ ์–ป๊ฒŒ ํ•ด์ฃผ๋Š” SQL ์‚ฝ์ž…์ด ์žˆ์œผ๋ฉฐ, ๋˜ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํš๋“๋œ ๊ฒฝ์šฐ์— FTP๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด ์งˆ ์ˆ˜ ์žˆ๋‹ค.

๋””ํŽ˜์ด์Šค ๊ณต๊ฒฉ(๋ณ€์กฐ๋“ค)์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ „์ฒด ํŽ˜์ด์ง€์—์„œ ์ด๋ฃจ์–ด์ง€์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์— ๋ณ€์กฐ๋Š” ์œ„ํ—˜ํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ง€ ํฌ๋ž˜์ปค๋“ค์ด ๊ธฐ์ˆ ์„ ๋ฝ๋‚ด๊ฑฐ๋‚˜(ํ•ดํ‚น์„ ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ๊ณผ์‹œ์šฉ) ํ•ตํ‹ฐ๋น„์ฆ˜(์ •์น˜์  ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌ )์„ ์œ„ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์•…์„ฑ ์ฝ”๋“œ ์—…๋กœ๋”ฉ์ด๋‚˜ ์„œ๋ฒ„์˜ ์ค‘์š” ํŒŒ์ผ ์‚ญ์ œ ๊ฐ™์€ ๋” ํ•ด๋กœ์šด ํ–‰์œ„๋ฅผ ๊ฐ€๋ฆฌ๊ธฐ ์œ„ํ•ด ์ฃผ์˜๋ฅผ ๋ถ„์‚ฐํ•  ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ธฐ๋„ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ณต๊ฒฉ์„ ๋‹นํ–ˆ์„ ๋•Œ ํ”ผํ•ด๊ฐ€ ์‹ฌ๊ฐํ•˜์ง€ ์•Š๋”๋ผ๋„ ์›น์‚ฌ์ดํŠธ์˜ ๋ณด์•ˆ์ด ์ทจ์•ฝํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์œ„ํ—˜์„ ์ธ์ง€ํ•˜๊ณ  ๊ด€๋ จ ์กฐ์น˜๋ฅผ ์ทจํ•ด์•ผ ํ•œ๋‹ค.

 

ํ•ตํ‹ฐ๋น„์ฆ˜(hacktivism) ๊ณต๊ฒฉ

ํ•ตํ‹ฐ๋น„์ฆ˜์€ ์ •์น˜ · ์‚ฌํšŒ์  ๋ชฉ์ ์„ ์ด๋ฃจ๊ธฐ ์œ„ํ•ด ํ•ดํ‚นํ•˜๊ฑฐ๋‚˜ ๋ชฉํ‘œ๋ฌผ์ธ ์„œ๋ฒ„ ์ปดํ“จํ„ฐ๋ฅผ ๋ฌด๋ ฅํ™” ์‹œํ‚ค๊ณ , ์ด๋Ÿฐ ๊ธฐ์ˆ ์„ ๋งŒ๋“œ๋Š” ์šด๋™์„ ๋งํ•œ๋‹ค. 'ํ•ด์ปค'์™€ ์ •์น˜ ํ–‰๋™์ฃผ์˜๋ฅผ ๋œปํ•˜๋Š” '์•กํ‹ฐ๋น„์ฆ˜(Activism)'์˜ ํ•ฉ์„ฑ์–ด๋กœ ๋‹จ์ˆœํžˆ ์ปดํ“จํ„ฐ ๋ณด์•ˆ์žฅ์น˜๋ฅผ ํ’€๊ณ  ์นจ์ž…ํ•˜๋Š” ํ•ด์ปค์™€๋Š” ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

 

4. XSS

Stored XSS

๋ฉ”์ธ ํŽ˜์ด์ง€๋ฅผ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ๋‹ค๋ฉด?!

<script>
์›ํ•˜๋Š” ๊ณต๊ฒฉ
</script>

์œ„์™€ ๊ฐ™์€ ์›ํ•˜๋Š” ๊ณต๊ฒฉ์„ ์‚ฝ์ž…ํ•œ ์Šคํฌ๋ฆฝํŠธ๋งŒ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฉ”์ธํŽ˜์ด์ง€๋ฅผ ๋ฎ์–ด์“ฐ๋Š” ๊ณต๊ฒฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

5. DoS

๊ณผ๋„ํ•œ ํŒŒ์ผ ์—…๋กœ๋“œ๋ฅผ ํ†ตํ•ด DB / ์„œ๋ฒ„๋ฅผ ๋งˆ๋น„์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.


์„œ๋ฒ„์ธก ์‹คํ–‰ ํŒŒ์ผ - Web Shell

์›น ์‰˜(Web Shell)

ํŒŒ์ผ ์—…๋กœ๋“œ ๊ณต๊ฒฉ = ์›น ์‰˜ ๊ณต๊ฒฉ ์ด๋ผ๊ณ  ๋ณธ๋‹ค.

(๋ช…ํ™•ํžˆ ๋งํ•˜๋ฉด ๋‹ค๋ฅด์ง€๋งŒ ํ”ํžˆํ•˜๋Š” ๊ณต๊ฒฉ์ด ์›น ์‰˜(Web Shell) ๊ณต๊ฒฉ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ”ํžˆ ๊ฐ™๋‹ค๊ณ  ์ด์•ผ๊ธฐ ํ•œ๋‹ค.)

๋„์Šค ๊ณต๊ฒฉ๊ณผ ๋””๋„์Šค ๊ณต๊ฒฉ์ด ๊ฐ™์€ ๊ฒƒ์ด ์•„๋‹ˆ๊ณ , ๋„์Šค ๊ณต๊ฒฉ์—์„œ ๋””๋„์Šค ๊ณต๊ฒฉ์ด ํŒŒ์ƒ๋œ ๊ฒƒ์ด์ง€๋งŒ ๋„์Šค ๊ณต๊ฒฉ์˜ ์ฃผ๋œ ๊ณต๊ฒฉ์ด ๋””๋„์Šค ๊ณต๊ฒฉ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™๋‹ค๊ณ  ๋ณด๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฒƒ์ด๋‹ค.

์‰˜(Shell)์ด๋ž€? ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, ๊ทธ ์ž…๋ ฅ์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ์ด๋‹ค.

php ์ฝ”๋“œ๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž.

webshell.php

<?php
echo system($_GET['cmd']);
?>

(์—ฌ๊ธฐ์„œ ์กฐ๊ธˆ ๋” ์ •ํ™•ํžˆ ๋งํ•˜์ž๋ฉด system ์ž์ฒด๊ฐ€ cmd ์ฐฝ์„ ์˜๋ฏธํ•œ๋‹ค.)

php ํŒŒ์ผ์„ ์˜ฌ๋ฆฌ๊ณ , ์—…๋กœ๋“œ๋œ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•œ๋‹ค๋ฉด ์ด๊ฒƒ์€ ํ•ด๋‹น ํŒŒ์ผ์„ ์š”์ฒญํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿผ ์œ„์˜ webshell.php ํŒŒ์ผ์„ ๋„ฃ์–ด์ค€๋‹ค๋ฉด?

/webshell.php?cmd=pwd

์œ„์™€ ๊ฐ™์ด ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น cmd์—์„œ pwd ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ ๊ถŒํ•œ ์ƒ์Šน ์ทจ์•ฝ์ ์„ ์ด์šฉํ•œ๋‹ค๋ฉด?!

๊ถŒํ•œ ์ƒ์Šน์„ ์œ„ํ•ด ๊ถŒํ•œ ์ƒ์Šน ์ทจ์•ฝ์ ์ด ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ๋˜ ์—…๋กœ๋“œํ•ด์„œ ์›น ์‰˜์—์„œ ์‹คํ–‰ ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. 

ํ•˜์ง€๋งŒ ์ด ์˜์—ญ ์ดํ›„๋กœ๋Š” ์นจํˆฌ ํ…Œ์ŠคํŠธ(Penetration Testing)์˜ ์˜์—ญ์— ํ•ด๋‹นํ•œ๋‹ค.

ใ€Œ์›น ์‰˜์„ ์ทจ๋“ํ•˜๋Š” ๊ฒƒ ๊นŒ์ง€ใ€ ๊ฐ€ ์ทจ์•ฝ์ ์„ ์ฐพ๋Š” ์›น ํ•ดํ‚น์˜ ์˜์—ญ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์›น ๋ชจ์˜ ํ•ดํ‚น ์ง„ํ–‰์‹œ์—๋Š” ๋งŒ์•ฝ id๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ root์ธ ๊ฒƒ์ด ํ™•์ธ๋˜๋Š” ๊ฒฝ์šฐ, ์—”์ง„์˜ ์‹คํ–‰ ๊ถŒํ•œ์„ root๋กœ ํ•˜์ง€ ๋ง๋ผ๊ณ  ๋ณด๊ณ ์„œ์— ์ž‘์„ฑํ•˜๋Š” ์ •๋„๋Š” ํ•  ์ˆ˜ ์žˆ๋‹ค.

(์ทจ์•ฝ์  / ๊ถŒ๊ณ ์‚ฌํ•ญ์„ ์ •ํ•˜๋Š” ๊ฒƒ์€ ํ…Œ์Šคํ„ฐ์˜ ์˜์—ญ์ด๋‹ค.)

Exploit(์•…์šฉ)์—๋Š” ๋ฒ”์ฃผ๊ฐ€ ์—†์ง€๋งŒ, ๋ชจ์˜ ํ•ดํ‚น์˜ ์˜์—ญ์€ ์–ด๋Š์ •๋„ ์ˆ˜์ค€์—์„œ ๊ทธ์น˜๋Š” ๊ฒƒ์ด๋‹ค.

์›น ํ•ดํ‚น
ํŒŒ์ผ ์—…๋กœ๋“œ(file uplaod) ์ทจ์•ฝ์ ์ด ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€
(web shell์ด ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ์ง€ ๊นŒ์ง€)

์นจํˆฌ ํ…Œ์ŠคํŠธ์˜ ์˜์—ญ
> shell
> root ๊ถŒํ•œ

์›น ์‰˜ ๊ณต๊ฒฉ์˜ ํ•ต์‹ฌ

1. ์›น ์„œ๋ฒ„ ์ธก ์‹คํ–‰ ์ฝ”๋“œ๋ฅผ ์—…๋กœ๋“œ

์›น ์„œ๋ฒ„ ์ธก ์‹คํ–‰ ์ฝ”๋“œ(ํ•ด๋‹น ์„œ๋ฒ„์˜ ์‹คํ–‰ ์–ธ์–ด)๋ฅผ ์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค.

์–ธ์–ด์˜ ์ข…๋ฅ˜๋ฅผ ํ•ด๋‹น ์›น์„ ์‚ดํŽด๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋‹ค.(์›น ์„œ๋ฒ„์—์„œ ์ด์šฉํ•˜๋Š” ์–ธ์–ด์— ๋งž์ถฐ์„œ ์˜ฌ๋ฆฌ๋ฉด ๋œ๋‹ค.)

ex) jsp - java (์ปดํŒŒ์ผ ํ•ด์„œ class ํŒŒ์ผ์„ ์˜ฌ๋ฆฌ๊ธฐ๋„ ํ•œ๋‹ค)

ํ•ด๋‹น ์„œ๋ฒ„์—์„œ ์‹คํ–‰ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

2. ์—…๋กœ๋“œ๋œ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ

์—…๋กœ๋“œ๋œ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์•Œ์•„์•ผํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์—…๋กœ๋“œ ๋˜๋Š” ๊ฒฝ๋กœ๋ฅผ ์นœ์ ˆํ•˜๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ์‚ฌ์ดํŠธ๋Š” ์—†๋‹ค๊ณ  ๋ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ค์‹์œผ๋กœ ์•Œ์•„๋‚ผ๊นŒ?

์—…๋กœ๋“œ ๊ฒฝ๋กœ ํ™•์ธ

์—…๋กœ๋“œ๋œ ํŒŒ์ผ์ด ์ถœ๋ ฅ๋˜๋Š” ๊ณณ์„ ํ™•์ธํ•œ๋‹ค. (๋‹ค์šด ๋ฐ›๊ฑฐ๋‚˜ ์ถœ๋ ฅ์ด ๋˜๋Š” ๊ณณ)

์ด๋ฏธ์ง€๋ผ๋ฉด? ์ด๋ฏธ์ง€๋ฅผ ์šฐํด๋ฆญํ•˜์—ฌ ์ด๋ฏธ์ง€ ์ฃผ์†Œ ๋ณต์‚ฌ๋ฅผ ํ•˜๊ณ  ๋ถ™์—ฌ๋„ฃ์–ด๋ณด๋ฉด ๊ฒฝ๋กœ๋ฅผ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

ex) image

์—…๋กœ๋“œ๋œ image๊ฐ€ ์ถœ๋ ฅ
-> ์ด๋ฏธ์ง€๋ฅผ ์šฐํด๋ฆญ
-> ์ด๋ฏธ์ง€ ์ฃผ์†Œ ๋ณต์‚ฌ
-> ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ›„ ๊ฒฝ๋กœ ํ™•์ธ

๊ทธ๋ ‡๋‹ค๋ฉด ์—ฌ๊ธฐ์„œ ์›น์‰˜(Webshell.php)์„ ๋„ฃ์–ด์ค€๋‹ค๋ฉด?

๊ทธ๋ƒฅ ์š”์ฒญํ•œ๋‹ค๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. ํ•„์š”ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋„ฃ์–ด์ฃผ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ, ์—ฌ๊ธฐ์— cmd ์— ์ž…๋ ฅํ•  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋„ฃ์–ด์ฃผ์–ด ์›น์‰˜๋กœ์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์—…๋กœ๋“œํ•œ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์•Œ์•„๋‚ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ?

php๋กœ ๋œ ๋žœ์„ฌ์›จ์–ด ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ์—…๋กœ๋“œ ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.

ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„์„œ ํŒŒ์ผ์„ ์š”์ฒญํ•˜๋ฉด ์„œ๋ฒ„์—์„œ ๋žœ์„ฌ์›จ์–ด๊ฐ€ ์‹คํ–‰๋  ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ ๋งŒ์œผ๋กœ๋Š” ๊ทธ ๋ˆ„๊ตฌ๋„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋‹ค. ์š”์ฒญ์„ ํ•ด์•ผ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๋‹ค. (์š”์ฒญ์„ ํ•˜๋ ค๋ฉด ๊ฒฝ๋กœ๋ฅผ ์•Œ์•„์•ผํ•œ๋‹ค.)

ํŒŒ์ผ ์—…๋กœ๋“œ
-> ์—…๋กœ๋“œ ๊ฒฝ๋กœ๋ฅผ ์•Œ์•„์•ผ ์š”์ฒญ์ด ๊ฐ€๋Šฅ
-> ์š”์ฒญ์„ ํ•ด์•ผ ์‹คํ–‰ ์‹œํ‚ค๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅ

์ฆ‰, ํŒŒ์ผ์ด ์—…๋กœ๋“œ๋œ ๊ฒฝ๋กœ๋ฅผ ์•Œ๊ณ  ํ•ด๋‹น ๊ฒฝ๋กœ๋กœ ์š”์ฒญ์„ ํ•ด์•ผ ์‹คํ–‰ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

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

XSS, CSRF : Client ๊ณต๊ฒฉ. ํ•ด๋‹น ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•˜๋Š” ์ด์šฉ์ž๋“ค์„ ๊ณต๊ฒฉํ•˜๋Š” ๊ฒƒ

SQL Injection, Web Shell : Server ๊ณต๊ฒฉ ์„œ๋ฒ„ ์ž์ฒด๋ฅผ ๊ณต๊ฒฉ

ํŒŒ์ผ ์—…๋กœ๋“œ ๋Œ€์‘ (์•ฝํ•œ ๋Œ€์‘ ๊ธฐ๋ฒ•)

 

ํŒŒ์ผ ํ˜•์‹ ์ œํ•œ

์—…๋กœ๋“œ ์ทจ์•ฝ์ ์„ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ ์—…๋กœ๋“œ ๋˜๋Š” ํŒŒ์ผ์„ ๊ฒ€์‚ฌํ•˜๊ณ  ์ œํ•œํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

MIME (ํŒŒ์ผ ํ˜•์‹ ์ œํ•œ)

ํ•ด๋‹นํ•˜๋Š” ํŒŒ์ผ ํ˜•์‹(Content-Type)์„ ๊ฒ€์‚ฌํ•œ๋‹ค.

ex) Content-Type : text/php

Content-Type ๋ณ€์กฐ

ํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ์—…๋กœ๋“œํ•  ๋•Œ Burp Suite Proxy์—์„œ ํŒŒ์ผ ํ˜•์‹์„ ๋ฐ”๊พธ์–ด์„œ ์—…๋กœ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์šฐํšŒ๊ธฐ๋ฒ•์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ œ๋Œ€๋กœ๋œ ๋Œ€์‘์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์—†๋‹ค.

 

์‹คํ–‰ ๊ถŒํ•œ ์ œ๊ฑฐ

(์›น ์„œ๋ฒ„ ์ž…์žฅ์—์„œ) "์•„.. ์ด๊ฒŒ ์‹คํ–‰ํ•˜๋Š”๊ฒŒ ๋ฌธ์ œ๊ตฌ๋‚˜!" ๋ผ๋Š” ์ƒ๊ฐ์—, ๊ทธ๋Ÿผ ์—ฌ๊ธฐ ์žˆ๋Š” ํŒŒ์ผ์€ ์‹คํ–‰ ํ•˜์ง€๋งˆ! ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

์›น ์„œ๋ฒ„์˜ ์„ค์ •์—์„œ ํ•ด๋‹น ๊ฒฝ๋กœ์˜ ํŒŒ์ผ์˜ ์‹คํ–‰ ๊ถŒํ•œ์„ ์—†์• ๋Š” ๊ฒƒ์ด๋‹ค.

/files/~/~~

์œ„์™€ ๊ฐ™์ด ์—…๋กœ๋“œ๋˜๋Š” ํŒŒ์ผ์ด ์ €์žฅ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์˜ ์‹คํ–‰ ๊ถŒํ•œ์„ ์—†์• ๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿผ ํŒŒ์ผ์ด ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ๋‚ด์šฉ์ด ๊ทธ๋Œ€๋กœ ๋ณด์—ฌ์ง„๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ์„ ์šฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค.

ํŒŒ์ผ๋ช… ์ž์ฒด๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

Path traversal

../webshell.php

์œ„์™€ ๊ฐ™์ด ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๊ฐ€๋Š” ../ ๋ฅผ ๊ธฐ์กด์˜ ํŒŒ์ผ๋ช… ์•ž์— ๋„ฃ์–ด ์ €์žฅํ•˜์—ฌ ๊ธฐ์กด์— ์ €์žฅ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๋ณด๋‹ค ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅ๋˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํŒŒ์ผ์— ๊ฒฝ๋กœ๋ฅผ ํฌํ•จ์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์„ ๊ฒฝ๋กœ ํƒ์ƒ‰ ์ทจ์•ฝ์ (path traversal)์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

ํ™•์žฅ์ž ์ œํ•œ

๊ทธ๋ ‡๋‹ค๋ฉด php (์‹คํ–‰๋˜๋Š” ํ™•์žฅ์ž(File Extension))๋ฅผ ๋ชป ์“ฐ๊ฒŒํ•˜๋ฉด ๋˜๋Š”๊ฒƒ์ด ์•„๋‹๊นŒ? ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ php ํ•˜๋‚˜๋งŒ์„ ๋ชป์“ฐ๊ฒŒ ํ•œ๋‹ค๊ณ  ํ•ด๊ฒฐ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด์ „์— ํ™•์ธํ–ˆ๋˜ ์ทจ์•ฝ์ ๋“ค ์ฒ˜๋Ÿผ ๋Œ€์†Œ๋ฌธ์ž๋กœ๋„ ์šฐํšŒ๊ฐ€ ๋œ๋‹ค.

PhP, pHp pHP.....

๊ทธ๋Ÿผ ๋Œ€์†Œ๋ฌธ์ž๊นŒ์ง€ ์ œํ•œํ•˜๋ฉด๋˜๋Š” ๊ฒƒ์ด ์•„๋‹๊นŒ?

๊ทธ๋ ‡๋‹ค๋ฉด ๋‹ค๋ฅธ ํ™•์žฅ์ž๋ฅผ ์“ฐ๋Š” ๋ฐฉ์‹์ด ์กด์žฌํ•œ๋‹ค. php๋ผ๊ณ  ๋ฌด์กฐ๊ฑด .php ๋งŒ ์ด์šฉํ•ด์•ผํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

* php - .phtml, .php3, .php5 (์ž๋งคํ’ˆ...)
* jsp - jspx, jsw

๊ธฐ์กด์˜ ํ™•์žฅ์ž์˜ ์ž๋งคํ’ˆ(๋‹ค๋ฅธ ํ™•์žฅ์ž) alternative extension๋“ค์„ ์“ธ ์ˆ˜ ์žˆ๋‹ค.


๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์šฐํšŒ ๋ฐฉ๋ฒ•

์•ž์„œ ๋ดค๋“ฏ ๋‹ค์–‘ํ•œ ์šฐํšŒ ๊ธฐ๋ฒ•์ด ์กด์žฌํ•˜๋Š” ๋งŒํผ ํŒŒ์ผ ๊ฒ€์‚ฌ๋ฅผ ์ƒ๋‹นํžˆ ์ง€๋…ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

์ด๊ฒƒ์„ ์šฐํšŒํ•˜๋Š”๋ฐ์— ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์€ hex code๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

Hex Code(File Signature)

1. ์ •์ƒ์ ์ธ ์ด๋ฏธ์ง€๋ฅผ ํ•˜๋‚˜ ๋ฐ›๋Š”๋‹ค.
ex) gear.png
2. hex editor๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ gear.png๋ฅผ ์—ฐ๋‹ค.
3. ๊ทธ ๋์—๋‹ค๊ฐ€ ์›ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.
ex) <?php system($_GET['cmd']); ?>
4. ์œ„์™€ ๊ฐ™์ด ๋ฐ”๊พธ์–ด์ฃผ๊ฑฐ๋‚˜ / ๋’ค์— ์‚ฝ์ž…ํ•œ ๋’ค ์ €์žฅํ•œ๋‹ค.
5. ์‹คํ–‰์ฝ”๋“œ๋Š” ์‚ฝ์ž…๋œ ์ƒํƒœ์ง€๋งŒ File Signature๋ฅผ ๊ทธ๋Œ€๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค.
jpef, png, pdf ... (ํŒŒ์ผ ์‹œ๊ทธ๋‹ˆ์ฒ˜๋Š” ์•ž๋ถ€๋ถ„์ด๊ธฐ ๋•Œ๋ฌธ.)

ํŒŒ์ผ ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ฅผ ๊ทธ๋Œ€๋กœ ์ด์šฉํ•˜๋ฉด์„œ ์›ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ์‹์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

์ฃผ์˜ํ•  ์ (์ž˜๋ชป๋œ ์ง€์‹)

File Signature ≠ ํ™•์žฅ์ž

webshell.png๋ผ๊ณ  ํ•˜๋ฉด ๋Œ์•„๊ฐ€์ง€ ์•Š๋Š”๋‹ค.
webshell.php์™€ ๊ฐ™์ด ํ•ด๋‹น ์„œ๋ฒ„์˜ ์–ธ์–ด์˜ ํ™•์žฅ์ž์—ฌ์•ผํ•œ๋‹ค.

file signature๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด์ง€ ํ™•์žฅ์ž๋ฅผ .png๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์‹คํ–‰์ด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ฆผ ์›น์‰˜

๊ทธ๋ฆผ ํŒŒ์ผ ์›น์‰˜ ์ด๋ผ๋Š” webshell.png ์ธ๋ฐ๋„ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

๊ทธ๋Ÿผ ์œ„์—์„œ ๋ณธ ํ™•์žฅ์ž ์„ค์ •์€ ๋ฌด์—‡์ด์ง€? ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ํŒŒ์ผ ์—…๋กœ๋“œ ์ทจ์•ฝ์ ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ์ทจ์•ฝ์ ์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ์ธ์ง€ํ•ด์•ผํ•œ๋‹ค. (์ฐพ์•„๋ณด๊ณ  ์ƒ๊ฐํ•ด๋ณด๊ณ  ์—ฐ๊ตฌํ•ด๋ณด๊ณ  ์ถ”ํ›„์— ์ •๋ฆฌํ•˜๋„๋ก ํ•ด์•ผ๊ฒ ๋‹ค.)

๊ฒฐ๋ก ์€ ์ž˜๋ชป๋œ ์‚ฌ์‹ค๋กœ์„œ, ์•„์ด๋Ÿฌ๋‹ˆํ•˜๊ฒŒ๋„ ์˜ค๋ฅ˜๋ผ๊ณ  ํ•œ๋‹ค.

์ด์ค‘ ํ™•์žฅ์ž

webshell.php.png ์™€ ๊ฐ™์ด ํ™•์žฅ์ž๋ฅผ ๊ฒน์ณ ์“ด๋‹ค๊ณ  ํ•ด๋„ ๊ฐ€์žฅ ๋’ค์˜ ํ™•์žฅ์ž๋งŒ ์ธ์‹ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ค‘ํ™•์žฅ์ž๋„ ์‹คํ–‰์‹œํ‚ค์ง€ ๋ชปํ•œ๋‹ค.


๋ชจ์˜ ํ•ดํ‚น์‹œ ์ฃผ์˜ํ•  ์ 

๋ชจ์˜ ํ•ดํ‚น์„ ์ง„ํ–‰ํ•  ๋•Œ์— ํŒŒ์ผ ์—…๋กœ๋“œ ์ทจ์•ฝ์ ์„ ์ฐพ๋Š” ๊ฒฝ์šฐ ์ฃผ์˜ํ•  ์ ์ด ์žˆ๋‹ค.

"์›น์‰˜์„ ์˜ฌ๋ฆฌ๋ฉด ์•ˆ๋œ๋‹ค.!" ๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

์›น ์‰˜์„ ํ•จ๋ถ€๋Ÿฌ ์˜ฌ๋ฆฌ๋Š” ํ–‰์œ„๋Š” ๋…ธ๋งค๋„ˆ์— ํ•ด๋‹นํ•œ๋‹ค.

์‹ ์‚ฌ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด์•ผํ•œ๋‹ค.

ํ…Œ์ŠคํŠธํ•  ๋•Œ, ์›น์‰˜์„ ์˜ฌ๋ฆฌ๋Š” ์ด์œ ๋ฅผ ์ƒ๊ฐํ•ด๋ด์•ผํ•œ๋‹ค. ์—…๋กœ๋“œํ•œ ํŒŒ์ผ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ฒดํฌํ•˜๋Š” ๊ฒƒ์ด ๋ณธ๋ž˜์˜ ๋ชฉ์ ์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ POC ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. 

๋ชฉ์ ์„ ์žŠ์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

 

POC

<?php
echo "hello";
?>

์‹คํ–‰๋œ๋‹ค๋ฉด hello๋งŒ ์ถœ๋ ฅ๋  ๊ฒƒ์ด๊ณ , ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด? ์ „๋ถ€๋‹ค(์ฝ”๋“œ๊ฐ€ ๊ทธ๋Œ€๋กœ) ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค.

๋”ฐ๋ผ์„œ ์œ„์˜ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š”์ง€์˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ณ , ์‹คํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์ด ํ™•์ธ๋œ๋‹ค๋ฉด?

ํ˜‘์˜๋ฅผ ํ†ตํ•ด ์ถ”ํ›„ ์ง„ํ–‰ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

"์‹คํ–‰ ์ทจ์•ฝ์ ์ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค."
"์›น์‰˜์„ ์˜ฌ๋ ค์„œ ์ถ”๊ฐ€์ ์ธ ์ทจ์•ฝ์ ์„ ํ™•์ธํ•ด ๋ณผ๊นŒ์š”?"

๋ผ๊ณ  ๋ฌผ์–ด๋ณด๋Š” ๊ฒƒ์ด ๋งค๋„ˆ์ด๋‹ค.

๋‹ด๋‹น์ž์˜ ๋‹ต๋ณ€์— ๋”ฐ๋ผ ์ง„ํ–‰ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋ฉด๋œ๋‹ค.

์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€์ ์ธ ์ทจ์•ฝ์ ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.(๋ณด์ด์ง€ ์•Š๋˜ SQL Injection์ด ์ถ”๊ฐ€์ ์œผ๋กœ ๋ฐœ๊ฒฌ๋  ์ˆ˜๋„ ์žˆ๋‹ค.)

 

์ฃผ์˜!

web shell์˜ ๊ฒฝ์šฐ ํ…Œ์ŠคํŠธ ์งํ›„์— ๋ฐ”๋กœ ์‚ญ์ œํ•ด์•ผํ•œ๋‹ค.

๋‹ด๋‹น์ž์—๊ฒŒ ์‚ญ์ œ ์š”์ฒญ์„ ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์–ด๋–ป๊ฒŒ ๋ณด๋ฉด ๋ฐฑ๋„์–ด์™€ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์‚ญ์ œ ์š”์ฒญ ํ›„, ์ดํ›„์— ์‚ญ์ œ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์•ˆ๋˜์—ˆ๋‹ค๋ฉด ๋‹ค์‹œ ์š”์ฒญํ•ด์•ผํ•œ๋‹ค.


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