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์ ๊ฒฝ์ฐ ํ ์คํธ ์งํ์ ๋ฐ๋ก ์ญ์ ํด์ผํ๋ค.
๋ด๋น์์๊ฒ ์ญ์ ์์ฒญ์ ํด์ผํ๋ค๋ ๊ฒ์ด๋ค. ์ด๋ป๊ฒ ๋ณด๋ฉด ๋ฐฑ๋์ด์ ๋ง์ฐฌ๊ฐ์ง์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์ญ์ ์์ฒญ ํ, ์ดํ์ ์ญ์ ๋์๋์ง ํ์ธํ๊ณ ์๋์๋ค๋ฉด ๋ค์ ์์ฒญํด์ผํ๋ค.
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์