
CraftCMS의 원격 코드 실행(RCE) 취약점(CVE-2025-32432)에 대한 Go로 작성된 간단한 PoC입니다.
이 저장소에는 Craft CMS의 심각한 취약점 체인을 시연하기 위해 Go로 작성된 전문적인 개념 증명(PoC) 익스플로잇이 포함되어 있습니다. 이 익스플로잇은 로컬 파일 포함(LFI)으로 이어지는 로그 포이즈닝 취약점을 악용하며, 궁극적으로 리버스 셸을 통해 원격 코드 실행(RCE)을 달성합니다.
익스플로잇은 다음과 같은 다단계 실행 체인을 따릅니다:
이 도구는 먼저 대상에 인증되지 않은 GET 요청을 전송합니다. a 매개변수를 조작하고 쿠키를 통해 사용자 지정 CraftSessionId를 제공함으로써, 공격자는 애플리케이션이 /var/lib/php/sessions/sess_[sessionId]에 위치한 세션 로그 파일에 PHP 페이로드를 기록하도록 강제할 수 있습니다.
generate-transform 엔드포인트와 상호작용하기 위해, 이 도구는 관리 인터페이스에서 필요한 X-CSRF-Token 및 CRAFT_CSRF_TOKEN 쿠키를 자동으로 추출하여 후속 POST 요청이 서버에 의해 수락되도록 보장합니다.
이 도구는 특수하게 제작된 JSON 페이로드를 전달하여 generate-transform 엔드포인트를 악용합니다. 동작 주입(behavior injection)을 통해 \yii\rbac\PhpManager 클래스를 남용함으로써, 이 도구는 이전에 오염된 세션 로그에 대한 로컬 파일 포함(LFI)을 트리거합니다. 로그의 PHP 코드가 실행되면, 이 도구는 Python 기반 리버스 셸을 호출합니다.
기존 스크립트와 달리, 이 도구는 Go 루틴(goroutine)을 사용하는 동시성 TCP 리스너를 구현합니다. 이를 통해 이 도구는 지정된 포트에서 리버스 셸 연결을 자동으로 포착하여 익스플로잇 전달부터 셸 액세스까지 원활한 "원클릭" 경험을 제공합니다.
go run main.go
화면의 안내에 따라 대상 URL, 리스너 포트 및 IP 주소를 입력하십시오.
이 도구는 교육 및 승인된 테스트 목적으로만 사용됩니다.