
이 Python PoC는 Camaleon CMS 2.8.0 < 2.8.2(2.9.0에서 작동)의 경로 탐색(Path Traversal) 버그인 CVE-2024-46987을 악용합니다. 인증된 사용자가 MediaController를 통해 민감한 서버 파일을 읽을 수 있게 합니다. 승인된 보안 감사 및 교육용 연구 목적으로만 사용하도록 설계되었습니다.
이 저장소에는 Camaleon CMS에서 임의 파일 읽기(LFI / 경로 탐색)를 허용하는 CVE-2024-46987에 대한 개념 증명(PoC) 스크립트가 포함되어 있습니다.
Camaleon CMS 버전 2.8.0 ~ 2.8.2 미만(이상하게도 2.9.0에서도 동작함)에서 경로 탐색 취약점이 확인되었습니다. 이 취약점은 MediaController의 download_private_file 메서드에 있습니다.
이 취약점은 인증된 사용자가 file 매개변수를 조작하여 서버에서 임의의 파일을 다운로드할 수 있게 합니다. 애플리케이션이 상승된 권한으로 실행되거나 민감한 파일이 CMS를 실행하는 시스템 사용자에게 접근 가능한 경우, 이는 심각한 정보 유출(구성 파일, 소스 코드 등)로 이어질 수 있습니다.
기술 세부 사항:
requests다음 명령으로 의존성을 설치할 수 있습니다:
pip install requests
이 스크립트는 악용에 필요한 CSRF 토큰을 인증하고 검색하기 위해 대상 CMS의 유효한 사용자 계정이 필요합니다.
python3 CVE-2024-46987.py -u <URL> -l <USERNAME> -p <PASSWORD> <FILE_TO_READ>
-u, --url: 대상 사이트의 기본 URL (예: http://example.com).-l, --user: 인증용 사용자 이름.-p, --password: 인증용 비밀번호.--path: (선택 사항) 취약한 엔드포인트의 경로. 기본값: admin/media/download_private_file.-v, --verbose: 연결 단계를 표시하는 상세 모드를 활성화합니다.file: 서버에서 읽을 파일의 경로 (예: /etc/passwd)./etc/passwd 파일 읽기:
python3 CVE-2024-46987.py -u http://target-cms.local -l admin -p password123 /etc/passwd
상세 모드 사용:
python3 CVE-2024-46987.py -u http://target-cms.local -l user -p pass -v /etc/hosts
이 코드는 교육 및 보안 연구 목적으로만 제공됩니다. 사전 승인 없이 이 스크립트를 대상에 사용하는 것은 불법입니다. 저자는 오용에 대한 책임을 지지 않습니다.
침투 테스트를 수행하기 전에 항상 명시적인 허가를 받았는지 확인하십시오.