🇰🇷 한글 설명
PHProjekt 2.0에서 3.1 버전은 $PHP_SELF 변수를 인증에 사용하여 원격 공격자가 URL에 "sms"를 포함시킨 요청을 통해 인증을 우회할 수 있습니다. 예를 들어 "mail_send.php/sms"로 접근하면 PATH_INFO 부분의 변수 조작으로 보안 검사를 빠져나갈 수 있습니다.
💡 쉬운 설명
PHProjekt 웹 애플리케이션이 로그인 확인을 제대로 하지 않아 공격자가 URL을 조작하면 마치 로그인한 것처럼 접근할 수 있습니다. 이를 통해 권한이 없는 사용자도 민감한 기능을 사용할 수 있게 됩니다.
🇺🇸 원문 (English)
PHProjekt 2.0 through 3.1 relies on the $PHP_SELF variable for authentication, which allows remote attackers to bypass authentication for scripts via a request to a .php file with "sms" in the URL, which is included in the PATH_INFO portion of the $PHP_SELF variable, as demonstrated using "mail_send.php/sms".
📍 영향받는 시스템
PHProjekt 2.0 ~ 3.1
⚔️ 공격 벡터
URL 경로에 "sms" 문자열 추가로 PATH_INFO 변수 조작 (예: /mail_send.php/sms)
🛡️ 대응 방법
$PHP_SELF 변수 의존 제거, 세션 기반 인증 구현, $_SERVER['SCRIPT_NAME'] 또는 basename(__FILE__) 사용
🔧 검증 코드
결과가 0이면 $PHP_SELF를 사용하는 파일 없음 (안전), 1 이상이면 취약한 코드 존재 (점검 필요)
find /var/www -name '*.php' -type f 2>/dev/null | head -5 | xargs grep -l 'PHP_SELF' 2>/dev/null | wc -l