Nginxpwner - ваш помощник в поиске уязвимостей Nginx
Это архивный репозиторий и может быть устаревшим.

Знаете ли вы, что более 30% всех веб-сайтов в интернете работают на Nginx? При этом большинство проблем с безопасностью возникают не из-за багов в самом сервере, а из-за неправильных настроек. Именно для таких случаев создан Nginxpwner — инструмент, который автоматизирует поиск распространённых уязвимостей в конфигурации Nginx.
Кому пригодится Nginxpwner?
Этот инструмент стоит взять на вооружение:
- DevOps-инженерам для проверки своих конфигураций
- Пентестерам при оценке безопасности веб-приложений
- Разработчикам, которые хотят убедиться в безопасности своих проектов
- Системным администраторам для аудита существующих серверов
Главные возможности
Nginxpwner проверяет множество потенциальных проблем:
- Устаревшие версии Nginx — автоматически ищет известные эксплойты через searchsploit
- CRLF-инъекции — проверяет распространённую ошибку с использованием $uri в редиректах
- Уязвимости path traversal — тестирует настройки merge_slashes и alias
- Утечка переменных — находит опасные конфигурации, раскрывающие служебную информацию
- Проблемы с авторизацией — проверяет возможность обхода 401/403 ошибок через X-Accel-Redirect
Как это работает на практике
Установить Nginxpwner можно двумя способами:
# Классическая установка
cd /opt
git clone https://github.com/stark0de/nginxpwner
cd nginxpwner
chmod +x install.sh
./install.sh
# Или через Docker
git clone https://github.com/stark0de/nginxpwner
cd nginxpwner
sudo docker build -t nginxpwner:latest .
sudo docker run -it nginxpwner:latest /bin/bash
Для запуска проверки вам понадобится список URL-адресов целевого сайта. Например, можно экспортировать их из Burp Suite:
cat urllist | unfurl paths | cut -d"/" -f2-3 | sort -u > /tmp/pathlist
python3 nginxpwner.py https://example.com /tmp/pathlist
Что ещё умеет этот инструмент?
- Проверяет доступность HTTP-метода PURGE извне
- Тестирует на уязвимость к integer overflow (CVE-2017-7529)
- Анализирует различия в ответах при использовании hop-by-hop заголовков
- Предлагает специальные тесты для сайтов на PHP
- Использует Kyubi для более глубокого анализа path traversal
Когда стоит быть осторожным?
Инструмент не проверяет:
- Уязвимости веб-кэширования
- Проблемы с request smuggling
Также имейте в виду, что некоторые системы на базе Nginx (OpenResty, Tengine) могут не возвращать Server-заголовок. Для таких случаев есть специальная версия скрипта — nginx-pwner-no-server-header.py.
Вывод: стоит ли попробовать?
Nginxpwner — это отличное дополнение к вашему набору инструментов для обеспечения безопасности. Он особенно полезен, когда нужно быстро проверить типовые проблемы в конфигурации Nginx. Хотя он не заменяет полноценный аудит безопасности, но точно сэкономит вам массу времени на рутинных проверках.
Проект активно развивается, имеет открытый исходный код (Apache 2.0) и уже собрал более 1500 звёзд на GitHub — явный признак того, что инструмент действительно полезен сообществу.
