
치명적인 0 Day - Car Rental Management System 버전 1.0 - 1.3
Car Rental Management System 버전 1.0 ~ 1.3의 치명적 제로데이 취약점
Car Rental Management System(버전 1.0 ~ 1.3)의 시스템 설정 모듈 파일 업로드 기능에 치명적인 취약점이 존재합니다. 이 취약점으로 인해 낮은 권한의 사용자가 PHP 스크립트 등 실행 가능한 파일을 포함한 임의의 파일을 업로드할 수 있습니다. 이는 부적절한 파일 형식 검증과 업로드 디렉토리에 대한 접근 제어 미흡으로 인해 발생하며, 공격자는 악성 파일을 업로드한 후 인증 없이 공개적으로 접근할 수 있습니다.
해당 결함을 악용하면 공격자가 PHP 셸을 업로드한 후 업로드된 파일의 URL에 ?cmd=<command>를 추가하여 원격으로 명령을 실행할 수 있습니다. 이는 원격 코드 실행(RCE)으로 이어져 서버 전체가 장악될 가능성이 있습니다. 공격 성공 시 민감한 데이터에 대한 무단 접근, 권한 상승, 네트워크 내 추가 공격을 위한 측면 이동이 가능해집니다.
기본 구성: 시스템 설정 모듈의 파일 업로드 기능에 접근하려면 낮은 권한의 사용자 계정이 필요합니다.
사이트별 구성: 일부 설정에서는 파일 업로드 기능이 공개적으로 노출되어 공격자가 사용자 계정 없이 취약점을 악용할 수 있습니다.
이 취약점은 원격 코드 실행을 허용하므로 매우 치명적이며, 다음과 같은 결과를 초래할 수 있습니다:
서버 전체 장악. 민감한 데이터에 대한 무단 접근. 권한 상승. 네트워크 내 측면 이동.
취약점 완화를 위해 다음 조치를 권장합니다:
업로드되는 파일의 형식을 엄격히 검증하여 .php와 같은 실행 파일의 업로드를 차단합니다. 파일 업로드 권한을 신뢰할 수 있는 사용자로만 제한합니다. 업로드된 파일은 웹을 통해 접근할 수 없는 디렉토리에 저장합니다. 업로드된 파일이 기본적으로 실행되지 않도록 서버 권한을 설정합니다. 알려진 취약점을 해결하기 위해 정기적으로 시스템을 패치하고 업데이트합니다.
python CVE-2024-53345.py -u "URL" -c "COOKIE" -cmd "COMMAND"
python3 CVE-2024-53345.py -u "URL" -c "COOKIE" -cmd "COMMAND"
-u 또는 --url: Car Rental Management System의 기본 URL을 지정합니다.
-c 또는 --cookie: 업로드 요청 인증을 위해 낮은 권한 사용자의 PHP 세션 ID(PHPSESSID)를 제공합니다. 예시: 3952gmkk9uqf1csqgcmqo58qc0
-cmd 또는 --command: 셸이 업로드된 후 서버에서 실행할 명령어를 지정합니다. 예시: hostname
[+] 셸 업로드 시도 중...
[+] 셸이 성공적으로 업로드되었습니다. /car_rental/admin/assets/uploads/ 디렉토리를 확인하세요.
[+] 업로드된 PHP 파일 발견: ['1730189880_php.php']
[+] 업로드된 셸에서 'whoami' 명령 실행 중...
[+] 명령 출력:
Desktop-Demo\User