🇰🇷 한글 설명
PHP 4.4.5 이전, PHP 5.2.1 이전 버전에서 register_globals 활성화 시 session_decode 함수의 부정확한 직렬화 해제로 인해 공격자가 세션 데이터를 조작하여 임의의 전역 변수를 덮어쓸 수 있는 원격 코드 실행 취약점입니다. "_SESSION|s:39:" 형식의 악성 세션 문자열을 통해 서버에서 임의의 PHP 코드를 실행할 수 있습니다.
💡 쉬운 설명
매우 오래된 PHP 웹사이트에서 사용자 세션을 잘못 처리할 때, 해커가 조작된 세션 정보를 전송하여 서버를 완전히 제어할 수 있는 문제입니다. PHP 4.4.5 이상 또는 5.2.1 이상으로 업그레이드하면 해결됩니다.
🇺🇸 원문 (English)
PHP 4 before 4.4.5, and PHP 5 before 5.2.1, when register_globals is enabled, allows context-dependent attackers to execute arbitrary code via deserialization of session data, which overwrites arbitrary global variables, as demonstrated by calling session_decode on a string beginning with "_SESSION|s:39:".
📍 영향받는 시스템
PHP 4.0.0-4.4.4, PHP 5.0.0-5.2.0 (register_globals=On 필수)
⚔️ 공격 벡터
session_decode()에 "_SESSION|s:39:" 형식의 악성 페이로드를 전달하여 전역 변수 덮어쓰기 및 코드 실행
🛡️ 대응 방법
PHP를 4.4.5 이상 또는 5.2.1 이상으로 업그레이드하거나 register_globals를 Off로 설정
🔧 검증 코드
VULNERABLE 출력 시 해당 버전이 CVE-2007-1701 취약점 보유, PATCHED 출력 시 안전한 버전
php -v | grep -oE '(4\.[0-3]\.|4\.4\.[0-4]|5\.[01]\.|5\.2\.0)' && echo VULNERABLE || echo PATCHED