Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Nginx-CVE-2013-4547 — Laboratório baseado em Docker demonstrando a vulnerabilidade de parsing de URI no Nginx CVE-2013-4547 com exploração passo a passo para bypass de privilégios e execução de código. | Kitploit
Ferramentas/GitHubGitHub/cyberharsh/nginx-cve-2013-4547
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoConfiguração IncorretaAprendizado e Educação
GitHubcyberharsh/nginx-cve-2013-4547

Nginx-CVE-2013-4547

Laboratório baseado em Docker demonstrando a vulnerabilidade de parsing de URI no Nginx CVE-2013-4547 com exploração passo a passo para bypass de privilégios e execução de código.

Ver Repositório
3112há 6 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Vulnerabilidade de lógica de nome de arquivo no Nginx (CVE-2013-4547)

Descrição da vulnerabilidade

Versões afetadas: Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7

Links de referência:

  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4547
  • https://blog.werner.wiki/file-resolution-vulnerability-nginx/
  • http://www.91ri.org/9064.html

Descrição da vulnerabilidade

Esta vulnerabilidade não está realmente relacionada à execução de código; sua principal causa é a análise incorreta do URI da solicitação, obtendo erroneamente o nome do arquivo solicitado pelo usuário, resultando em consequências como bypass de permissões e execução de código.

Por exemplo, quando o Nginx corresponde a uma solicitação que termina em .php, ele a envia para o fastcgi para análise. A configuração comum é a seguinte:

location ~ \.php$ {
    include        fastcgi_params;

    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
    fastcgi_param  DOCUMENT_ROOT /var/www/html;
}

Em circunstâncias normais (com pathinfo desabilitado), apenas arquivos com extensão .php são enviados para o fastcgi.

Na presença do CVE-2013-4547, quando solicitamos 1.gif[0x20][0x00].php, este URI corresponde à expressão regular \.php$ e pode entrar no bloco Location; porém, após entrar, o Nginx erroneamente considera que o arquivo solicitado é 1.gif[0x20] e define seu valor como SCRIPT_FILENAME para enviar ao fastcgi.

O fastcgi analisa de acordo com o valor de SCRIPT_FILENAME, resultando em uma vulnerabilidade de parsing.

Portanto, basta fazer upload de um arquivo com um espaço no final para que o PHP o analise.

Outro exemplo: muitos sites restringem o acesso ao backend por IP:

location /admin/ {
    allow 127.0.0.1;
    deny all;
}

Podemos solicitar o seguinte URI: /test[0x20]/../admin/index.php. Este URI não corresponde ao /admin/ no location, contornando a verificação de IP; mas no final o arquivo solicitado é /test[0x20]/../admin/index.php, ou seja, /admin/index.php, conseguindo acessar o backend com sucesso. (Isso requer que exista um diretório chamado test : é uma característica do Linux; se o diretório não existir, mesmo com o redirecionamento para o nível acima, ocorrerá um erro de arquivo inexistente. No Windows, essa restrição não existe.)

Teste da vulnerabilidade

Inicie o ambiente vulnerável:

docker-compose build
docker-compose up -d

Após iniciar o ambiente, acesse http://your-ip:8080/ para ver uma página de upload.

Este ambiente utiliza validação de lista negra; não podemos fazer upload de arquivos com extensão .php, precisamos explorar o CVE-2013-4547. Faça upload de um arquivo 1.gif , observe o espaço no final:

Acesse http://your-ip:8080/uploadfiles/1.gif[0x20][0x00].php e você verá que o PHP foi interpretado:

Nota: [0x20] é um espaço, [0x00] é \0. Esses caracteres não precisam ser codificados.

Baixar ferramenta