Сканер на Python и proof-of-concept для CVE-2026-49049 — произвольной записи файлов в Joomla Helix3, позволяющей загрузить PHP-веб-шелл и выполнить удалённый код.
Этот репозиторий содержит сканер на Python и proof-of-concept для уязвимости в компоненте Joomla Helix3. Ошибка представляет собой проблему произвольной записи файлов, которая может привести к удалённому выполнению кода (RCE), когда злоумышленник может записать PHP-полезную нагрузку в место, доступное через веб.
Уязвимое поведение возникает, когда параметр запроса используется для управления путём к файлу или содержимым файла без должной проверки. В случае AJAX-интерфейса Helix3 конечная точка принимает данные, которые могут быть использованы для записи файлов в файловую систему сервера. Если приложение не ограничивает путь назначения и не проверяет содержимое, злоумышленник может создать вредоносный PHP-скрипт в месте, которое выполняется веб-сервером.
Иными словами, уязвимость — это не просто «файл может быть записан», это опасная цепочка:
Это классический сценарий произвольной записи файла с превращением в веб-шелл.
Как только злоумышленник может записать PHP-файл в корень сайта или другой исполняемый каталог, он может:
Влияние серьёзно, поскольку позволяет злоумышленнику превратить простую ошибку записи файла в полную компрометацию сервера.
Корневая проблема обычно похожа на следующую логику:
$file = $_POST['layoutName'];
$content = $_POST['content'];
file_put_contents($file, $content);
Если значение $file контролируется злоумышленником и путь не ограничен, приложение может записать PHP-код в исполняемый путь. Вредоносный скрипт затем становится доступен браузеру и может быть выполнен веб-сервером.
Этот проект включает многопоточный инструмент на Python, который пытается:
Он записывает уязвимые цели в results.txt и сохраняет необработанный вывод PHP в raw_result.txt.
Исправление должно устранить запись недоверенных файлов и обеспечить строгую проверку. Рекомендуемые шаги по устранению приведены ниже.
Обновите Joomla и компонент/плагин Helix3 до последней стабильной версии. Обновления безопасности часто удаляют или ограничивают уязвимую конечную точку, позволяющую выполнять произвольные операции записи.
Если функциональность AJAX Helix3 не нужна, отключите её полностью. Удаление доступа к небезопасной конечной точке значительно сокращает поверхность атаки.
Не допускайте произвольных путей в файловой системе. Приложение должно разрешать запись только внутри небольшого фиксированного каталога, который не доступен публично и не выполняется как PHP.
Проверка должна отклонять:
../Перед записью любого файла:
Только доверенные администраторы должны иметь возможность использовать конечные точки, записывающие файлы. Требуйте надлежащей аутентификации и проверки прав перед принятием любого запроса на запись.
Никогда не записывайте необработанное содержимое, контролируемое злоумышленником, в исполняемые файлы без строгой проверки. Кроме того, укрепление сервера должно включать:
requestsСоздайте файл, содержащий целевые URL, например targets.txt:
http://example.com
https://joomla-site.local
http://127.0.0.1
Затем запустите:
python3 cve-2026-49049.py targets.txt
Скрипт создаст:
results.txt — обнаруженные уязвимые URLraw_result.txt — необработанные PHP-полезные нагрузки, наблюдаемые во время тестированияЭтот проект предназначен для образовательных целей, законных исследований безопасности и авторизованной оценки уязвимостей. Он не должен использоваться против систем без явного разрешения. Злоупотребление строго запрещено.
Содержимое этого репозитория предоставлено, чтобы помочь исследователям и администраторам понять, выявить и устранить реальную проблему безопасности. Используйте его ответственно и только в контролируемых средах, где у вас есть соответствующая авторизация.