
CVE-2022-31147 — это недостаток обхода пути в matthiasmullie/minify. Это руководство помогает командам безопасности тестировать произвольное чтение файлов в Linux и Windows с помощью Python и curl. Оно охватывает автоматическую генерацию полезной нагрузки, ручную проверку и безопасные методы оценки уязвимостей.
В данном руководстве представлены всесторонние методики тестирования CVE-2022-31147 — критической уязвимости обхода пути, затрагивающей широко используемую библиотеку matthiasmullie/minify. Уязвимость позволяет злоумышленникам использовать недостаточную очистку входных данных в конечной точке minify, что потенциально даёт возможность выполнять произвольные операции чтения файлов как на серверах Linux, так и Windows. Руководство предназначено для специалистов по безопасности, пентестеров и исследователей, стремящихся оценить подверженность веб-приложений данной угрозе.
Основой руководства является автоматизированный скрипт доказательства концепции на Python, который систематически генерирует и тестирует широкий спектр полезных нагрузок обхода пути. Эти нагрузки используют различную глубину обхода каталогов (../), множественные схемы кодирования (например, URL-кодирование и двойное кодирование) и вариации конечных точек (включая фиктивные расширения и параметры запроса) для обхода типичных механизмов маршрутизации и фильтрации. Применяя эти техники, скрипт максимизирует вероятность обнаружения уязвимых конфигураций даже в средах, защищённых базовыми межсетевыми экранами веб-приложений или пользовательской логикой маршрутизации.
Точность обнаружения дополнительно повышается за счёт встроенных эвристик, анализирующих содержимое ответа на наличие известных маркеров файлов. Для целей Linux скрипт ищет шаблоны, характерные для /etc/passwd или других конфиденциальных файлов, а для систем Windows — индикаторы в файлах типа win.ini. Такой подход гарантирует надёжное выявление успешной эксплуатации, минимизируя ложные срабатывания и упрощая процесс проверки.
Помимо автоматизированного тестирования, в руководстве описаны методы ручной проверки с помощью curl, позволяющие практикам создавать и отправлять собственные запросы для целенаправленного анализа или независимой верификации результатов. На протяжении всего руководства подчёркиваются рекомендации по безопасному и авторизованному тестированию, включая важность проведения оценок только на системах, на которые получено явное разрешение.
python3 cve-2022-31147_poc.py --base https://yourdomain.tld/cdn/minify --linux --file /etc/passwd
python3 cve-2022-31147_poc.py --base https://yourdomain.tld/cdn/minify --windows --file C:\Windows\win.ini
Создайте безвредный файл на сервере, затем попытайтесь его прочитать:
python3 cve-2022-31147_poc.py --base https://yourdomain.tld/cdn/minify --file /var/www/test.txt
curl -i "https://yourdomain.tld/cdn/minify/../../../../../../etc/passwd"
curl -i "https://yourdomain.tld/cdn/minify/../../../../../../windows/win.ini"
curl -i "https://yourdomain.tld/cdn/minify/%2e%2e/../%2e%2e/../../etc/passwd"
curl -i "https://yourdomain.tld/cdn/minify/../../../../../../etc/passwd.css"
https://yourdomain.tld/cdn/minify на ваш фактический целевой URL.