
Nginxpwner é uma ferramenta simples para procurar misconfigurações e vulnerabilidades comuns do Nginx.

Nginxpwner é uma ferramenta simples para procurar configurações incorretas e vulnerabilidades comuns do Nginx.
cd /opt
git clone https://github.com/stark0de/nginxpwner
cd nginxpwner
chmod +x install.sh
./install.sh
git clone https://github.com/stark0de/nginxpwner
cd nginxpwner
sudo docker build -t nginxpwner:latest .
Execute a imagem
sudo docker run -it nginxpwner:latest /bin/bash
Na aba Target no Burp, selecione o host, clique com o botão direito, copie todas as URLs deste host para um arquivo
cat urllist | unfurl paths | cut -d"/" -f2-3 | sort -u > /tmp/pathlist
Ou obtenha a lista de caminhos que você já descobriu na aplicação de outra forma. Nota: os caminhos não devem começar com /
Finalmente:
python3 nginxpwner.py https://example.com /tmp/pathlist
Ele realmente verifica:
-Obtém a versão do Ngnix e seus possíveis exploits usando searchsploit e informa se está desatualizado
-Joga uma wordlist específica para Nginx via gobuster
-Verifica se é vulnerável a CRLF através de uma configuração incorreta comum do uso de $uri em redirecionamentos
-Verifica CRLF em todos os caminhos fornecidos
-Verifica se o método HTTP PURGE está disponível externamente
-Verifica configuração incorreta de vazamento de variáveis
-Verifica vulnerabilidades de path traversal via merge_slashes desativado
-Testa diferenças no comprimento das respostas ao usar cabeçalhos hop-by-hop (ex: X-Forwarded-Host)
-Usa Kyubi para testar vulnerabilidades de path traversal via alias mal configurado
-Testa bypass de 401/403 usando X-Accel-Redirect
-Mostra o payload para verificar configuração incorreta de leitura de resposta do backend raw
-Verifica se o site usa PHP e sugere alguns testes específicos do Nginx para sites PHP
-Testa a vulnerabilidade comum de estouro de inteiro no módulo de filtro de range do Nginx (CVE-2017-7529)
A ferramenta usa o cabeçalho Server na resposta para realizar alguns dos testes. Existem outros CMS e similares que são baseados em Nginx como Centminmod, OpenResty, Pantheon ou Tengine, por exemplo, que não retornam esse cabeçalho. Nesse caso, use o nginx-pwner-no-server-header.py com os mesmos parâmetros do outro script.
Além disso, para que a busca de exploits funcione corretamente, você deve executar: searchsploit -u no Kali de vez em quando.
A ferramenta não verifica vulnerabilidades de envenenamento/engano de cache web nem contrabando de requisições (request smuggling); você deve testar isso com ferramentas específicas para essas vulnerabilidades. O NginxPwner é focado principalmente em configurações incorretas que os desenvolvedores podem ter introduzido no nginx.conf sem ter consciência delas.
Créditos para shibli2700 por sua excelente ferramenta Kyubi https://github.com/shibli2700/Kyubi e para todos os contribuidores do gobuster. Créditos também para a Detectify (que na verdade descobriu muitas dessas configurações incorretas no NGINX).