
CVE-2024-4577 EXP
PHP는 Hypertext Preprocessor(하이퍼텍스트 전처리기)의 약자로, 현재 널리 사용되는 오픈소스 스크립트 언어이며 웹 개발과 HTML 내장에 특히 적합하고 사용법이 매우 간단합니다. CGI는 영어로 Common Gateway Interface(공용 게이트웨이 인터페이스)라고 하며, Apache가 PHP 스크립트를 만나면 PHP 프로그램을 CGI 애플리케이션(php-cgi.exe)에 제출하여 해석하고, 해석된 결과를 Apache에 반환한 후 해당 요청 사용자에게 다시 반환합니다.
PHP는 설계 시 Windows의 Best-Fit 문자 변환 특성을 무시했습니다. PHP-CGI가 Windows 플랫폼에서 실행되고 특정 언어 코드 페이지(예: 간체 중국어 936, 번체 중국어 950, 일본어 932 등)를 사용할 때, 공격자는 특수 쿼리 문자열을 구성할 수 있습니다. URL 디코딩 후 이러한 문자열에는 특정 비ASCII 문자가 포함될 수 있으며, 이 문자들은 Windows 시스템에서 하이픈으로 매핑되어 CVE-2012-1823 및 CVE-2012-2311 패치를 우회하고, CGI 모드의 명령줄 매개변수를 구성하여 임의의 PHP 코드를 실행할 수 있습니다.
PHP Windows 버전 8.3.0 <= 영향 버전 < 8.3.8 PHP Windows 버전 8.2.0 <= 영향 버전 < 8.2.20 PHP Windows 버전 8.1.0 <= 영향 버전 < 8.1.29 PHP Windows 버전 영향 버전 == 8.0.x PHP Windows 버전 영향 버전 == 7.x PHP Windows 버전 영향 버전 == 5.x XAMPP Windows 버전 8.2.0 <= 영향 버전 <= 8.2.12 XAMPP Windows 버전 8.1.0 <= 영향 버전 <= 8.1.25 XAMPP Windows 버전 영향 버전 == 8.0.x XAMPP Windows 버전 영향 버전 == 7.x XAMPP Windows 버전 영향 버전 == 5.x
python CVE-2024-4577 --target http://192.168.1.1/index.php -c "<?php system('calc')?>"

C:\xampp\apache\conf\extra\httpd-xampp.conf에서 다음과 같이 설정을 주석 처리한 후 서비스를 재시작합니다.
#
# PHP-CGI setup
#
# <FilesMatch "\.php$">
# SetHandler application/x-httpd-php-cgi
# </FilesMatch>
# <IfModule actions_module>
# Action application/x-httpd-php-cgi "/php-cgi/php-cgi.exe"
# </IfModule>
C:/xampp/apache/conf/extra/httpd-xampp.conf 주석 처리
# ScriptAlias /php-cgi/ "C:/xampp/php/"