Этот проект демонстрирует симуляцию межсетевого экрана веб-приложений (WAF) с использованием Flask и проверку уязвимости CVE-2017-5638. Промежуточное ПО WAF блокирует HTTP-запросы, содержащие определённые шаблоны, а проверка уязвимости тестирует и эксплуатирует уязвимость Apache Struts 2 (CVE-2017-5638).
Этот проект демонстрирует симуляцию межсетевого экрана веб-приложений (WAF) с использованием Flask и средства проверки уязвимости CVE-2017-5638. Промежуточное ПО WAF блокирует HTTP-запросы, содержащие определенные шаблоны, а средство проверки уязвимости тестирует и эксплуатирует уязвимость Apache Struts 2 (CVE-2017-5638).
server.py: Этот веб-сервер на основе Flask включает промежуточное ПО WAF, которое блокирует HTTP-запросы, содержащие потенциально вредоносные шаблоны. vulnerable.py: Этот скрипт проверяет наличие уязвимости CVE-2017-5638 и может выполнять произвольные команды, если цель уязвима.
Скрипт server.py настраивает веб-сервер Flask с промежуточным ПО WAF, которое проверяет входящие запросы на наличие определенных вредоносных шаблонов. При обнаружении заблокированного шаблона запрос отклоняется с ответом 403 Forbidden.
Установка Flask: pip install flask Запуск сервера: python server.py Доступ к серверу по адресу http://127.0.0.1:5000/.
Скрипт vulnerable.py проверяет, уязвим ли указанный URL для CVE-2017-5638, и может выполнять команды на уязвимом сервере.
Установка необходимых библиотек:
pip install requests Проверка, уязвим ли URL:
python vulnerable.py --url http://example.com --check Выполнение команды на уязвимом URL:
python vulnerable.py --url http://example.com -c "whoami"
Скрипт server.py служит базовой демонстрацией WAF с использованием Flask. В реальных сценариях следует применять более продвинутые методы и шаблоны.