본문 바로가기
dreamhack

[Dreamhack] image-storage (LEVEL 1)

by yejin_l 2023. 11. 8.
728x90

Description

php로 작성된 파일 저장 서비스입니다.

파일 업로드 취약점을 이용해 플래그를 획득하세요. 플래그는 /flag.txt에 있습니다.

 

풀이

step 1. 접속 정보 사이트로 접속 & 파일 다운로드 후 확인

3r개 php 파일이 있다. 이 중 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();
  }
?>

따로 필터링이 존재하지 않아 flag.txt로 이동하는 php파일을 작성해 업로드 해 보았다.

system 함수를 사용해 작성해고 php로 저장 후 업로드 해주었다.

업로드 후 List > FLag.php로 들어가보면 FLAG가 나온다.

728x90

'dreamhack' 카테고리의 다른 글

[Dreamhack] pathtraversal (Beginner)  (0) 2023.11.15
[Dreamhack] ssp_001 (LEVEL 2)  (1) 2023.11.15
[Dreamhack] ex-reg-ex (Beginner)  (0) 2023.11.08
[Dreamhack] baby-linux (Beginner)  (0) 2023.11.07
[Dreamhack] 🌱 simple-web-request (Beginner)  (0) 2023.11.07