
CVE-2025-2304에 대한 기능적 PoC, Camaleon CMS의 대량 할당 권한 상승 취약점. CSRF 동기화, 동적 ID 발견 및 페이로드 주입을 자동화하여 updated_ajax 엔드포인트를 통해 낮은 권한의 사용자를 관리자로 상승시킵니다.
이 저장소는 Camaleon CMS (2.8.1 이전 버전)의 Mass Assignment 취약점에 대한 기능적 개념 증명(PoC)을 포함합니다. 이 취약점은 사용자 관리 모듈의 updated_ajax 엔드포인트에 존재하며, 애플리케이션이 password 매개변수 해시 내 민감한 속성을 엄격하게 필터링하지 못합니다.
프로필 업데이트 중 password 범위에 role 속성을 주입함으로써, 낮은 권한의 사용자가 자신의 권한을 덮어써서 admin 상태를 얻을 수 있습니다.
이 취약점은 Ruby on Rails 컨트롤러에서 Strong Parameters의 잘못된 구성에서 비롯됩니다. 애플리케이션이 AJAX 업데이트 요청을 처리할 때, role 키가 사용자 객체의 속성에 부적절하게 병합되는 것을 허용합니다:
/admin/users/:id/updated_ajaxpassword[...]password[role]=adminrequests.Session을 사용합니다.authenticity_token을 스크래핑하고 X-CSRF-Token 헤더와 동기화하여 Rails의 AJAX 보안 요구 사항을 충족합니다./admin/profile/edit 페이지를 파싱하여 RESTful 엔드포인트에 필요한 user[id]를 동적으로 확인합니다._method=patch 오버라이드를 구현하여 POST를 통한 리소스 업데이트에 대한 애플리케이션 라우팅 요구 사항을 충족합니다.requestsbeautifulsoup4의존성 설치:
pip install -r requirements.txt
python3 main.py -u <target_url> --user <username> --password <password>
/admin/login): user[username]을 사용하여 인증된 세션을 설정합니다./admin/profile/edit): 고유한 user[id]와 새로운 authenticity_token을 추출합니다./admin/users/:id/updated_ajax): 주입 페이로드를 전송합니다.익스플로잇은 다음과 같이 구성된 application/x-www-form-urlencoded 페이로드를 사용합니다:
이 도구는 교육 목적 및 공인된 침투 테스트 용도로만 사용됩니다. 프로덕션 시스템에 대한 무단 접근은 불법입니다.
| 매개변수 | 값 | 설명 |
|---|
_method | patch | Rails REST 메서드 오버라이드 |
authenticity_token | [Captured] | 동기화된 CSRF 보호 |
password[password] | [NewPassword] | 비밀번호 범위 검증에 필요 |
password[role] | admin | 악성 주입 |