
CVE-2025-69906에 대한 기술적 분석 및 개념 증명으로, Monstra CMS 3.0.4에서 블랙리스트 우회 기법을 통해 원격 코드 실행으로 이어지는 임의 파일 업로드 취약점입니다.
이 내용을 readme.md로 만들어 붙여넣으세요.
작성자: David PS Abraham
날짜: 2026년 2월 5일
심각도: 치명적 - 원격 코드 실행 (CVSS 8.8+)
CWE: 434 (위험한 유형의 파일 무제한 업로드)
Monstra CMS v3.0.4의 파일 관리자 플러그인(plugins/box/filesmanager/filesmanager.admin.php)은 블랙리스트 기반 파일 확장자 검증을 구현하며, 업로드된 파일을 웹 접근 가능한 /public/files/ 디렉토리에 직접 저장하므로 표준 Apache/PHP 구성에서 원격 코드 실행을 가능하게 합니다.
핵심 결함 (filesmanager.admin.php ~150-220행):
// WEAK BLACKLIST VALIDATION
$blacklist = array('.php', '.php3', '.php4', '.php5', '.phtml', '.pl', '.py', '.jsp', '.asp', '.sh', '.cgi');
$bypass = true;
foreach ($blacklist as $bad) {
if (strpos(strtolower($filename), $bad) !== false) {
$bypass = false;
break;
}
}
if ($bypass) {
// DIRECT WEB-ROOT WRITE - No sanitization
$upload_path = BASE_PATH . DS . 'public' . DS . 'files' . DS;
move_uploaded_file($file['tmp_name'], $upload_path . $filename);
// http://target/public/files/shell.PHP executes!
}
| 영향 | 설명 |
|---|---|
| RCE | 업로드된 웹쉘을 통한 임의 PHP 실행 |
| 권한 상승 |
Monstra CMS <= 3.0.4
Path: plugins/box/filesmanager/filesmanager.admin.php
Repo: https://github.com/monstra-cms/monstra/tree/dev/plugins/box/filesmanager
2026-02-05: CVE-2025-69906 assigned by MITRE
2026-02-05: Public disclosure
1. Disable Files Manager plugin
2. Whitelist ALLOWED extensions only (image/png, image/jpeg)
3. Rename uploads: uniqid() + .jpg
4. Store outside web root
5. Migrate to maintained CMS
발견자: David PS Abraham (사이버보안 연구원)
CVE 할당에 따른 책임 있는 공개. 실제 악용은 수행되지 않았습니다.
저장소 공지에 따라 2018년 이후로 프로젝트가 유지보수되지 않았습니다.
[1]
이 전체 내용을 복사 → 저장소의 README.md에 붙여넣기 → 커밋 및 푸시 → 소셜 채널에 공유하세요.
인용: [1] 1000279995.jpg https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/attachments/images/62532667/8d8c801d-6e5c-4292-b88f-4530423fb53a/1000279995.jpg
| 결함 | 우회 예시 | 결과 |
|---|
| 대소문자 구분 | shell.PHP, shell.pHp | ✅ 실행 |
| 이중 확장자 | shell.php.jpg | ✅ 실행 |
| 널 바이트 | shell.php%00.jpg | ✅ 실행 |
| 비표준 PHP | shell.php7, shell.phtml | ✅ 실행 |
| 관리자 인증 상태 → 서버 장악 |
| 정보 공개 | <?php echo file_get_contents('../config.php'); ?>를 통한 파일 읽기 |
| 공격 벡터 | 원격, 인증 필요 (파일 관리자 인터페이스) |