Nginxpwner - ваш помощник в поиске уязвимостей Nginx

04 Mar, 2024

Это архивный репозиторий и может быть устаревшим.

1,600
🔱 149
👥 9

Nginxpwner logo

Знаете ли вы, что более 30% всех веб-сайтов в интернете работают на Nginx? При этом большинство проблем с безопасностью возникают не из-за багов в самом сервере, а из-за неправильных настроек. Именно для таких случаев создан Nginxpwner — инструмент, который автоматизирует поиск распространённых уязвимостей в конфигурации Nginx.

Кому пригодится Nginxpwner?

Этот инструмент стоит взять на вооружение:

  • DevOps-инженерам для проверки своих конфигураций
  • Пентестерам при оценке безопасности веб-приложений
  • Разработчикам, которые хотят убедиться в безопасности своих проектов
  • Системным администраторам для аудита существующих серверов

Главные возможности

Nginxpwner проверяет множество потенциальных проблем:

  1. Устаревшие версии Nginx — автоматически ищет известные эксплойты через searchsploit
  2. CRLF-инъекции — проверяет распространённую ошибку с использованием $uri в редиректах
  3. Уязвимости path traversal — тестирует настройки merge_slashes и alias
  4. Утечка переменных — находит опасные конфигурации, раскрывающие служебную информацию
  5. Проблемы с авторизацией — проверяет возможность обхода 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 — явный признак того, что инструмент действительно полезен сообществу.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.