🇰🇷 한글 설명
PHPmotion 2.0 이하의 update_profile.php에서 파일 업로드 검증이 부족하여 인증된 사용자가 PHP 파일을 이미지 파일로 위장하여 업로드할 수 있습니다. 업로드된 파일은 pictures/ 디렉토리에서 직접 접근하여 실행되어 임의의 코드 실행이 가능합니다.
💡 쉬운 설명
PHPmotion의 프로필 사진 업로드 기능에서 파일 형식 검증이 약해서, 권한이 있는 사용자가 PHP 프로그램을 사진으로 위장해서 업로드할 수 있습니다. 이렇게 업로드된 파일을 실행하면 서버의 모든 권한으로 명령을 실행할 수 있게 됩니다.
🇺🇸 원문 (English)
Unrestricted file upload vulnerability in update_profile.php in PHPmotion 2.0 and earlier allows remote authenticated users to execute arbitrary code by uploading a .php file with a content type of (1) image/gif, (2) image/jpeg, or (3) image/pjpeg, then accessing it via a direct request to the file under pictures/.
📍 영향받는 시스템
PHPmotion 2.0 및 그 이하 모든 버전
⚔️ 공격 벡터
인증된 사용자가 update_profile.php의 프로필 이미지 업로드 기능을 이용하여 image/gif, image/jpeg, image/pjpeg MIME 타입으로 위장한 PHP 파일을 업로드 후 pictures/ 디렉토리에서 직접 요청
🛡️ 대응 방법
PHPmotion을 최신 버전으로 업그레이드하고, 파일 확장자 및 매직 바이트 검증 추가, 업로드 디렉토리의 PHP 실행 권한 제거, 웹 접근 제한 설정
🔧 검증 코드
파일이 검색되면 PHPmotion이 설치되어 있으며, 해당 경로의 버전을 확인하여 2.0 이하면 즉시 업그레이드 필요
find /var/www -name 'update_profile.php' 2>/dev/null | head -1