Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Nginx-CVE-2013-4547 — Laboratorio basado en Docker que demuestra la vulnerabilidad de análisis de URI de Nginx CVE-2013-4547 con explotación paso a paso para elusión de privilegios y ejecución de código. | Kitploit
Herramientas/GitHubGitHub/cyberharsh/nginx-cve-2013-4547
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónMala ConfiguraciónAprendizaje y Educación
GitHubcyberharsh/nginx-cve-2013-4547

Nginx-CVE-2013-4547

Laboratorio basado en Docker que demuestra la vulnerabilidad de análisis de URI de Nginx CVE-2013-4547 con explotación paso a paso para elusión de privilegios y ejecución de código.

Ver Repositorio
314hace 6 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Vulnerabilidad de lógica de nombre de archivo en Nginx (CVE-2013-4547)

Descripción de la vulnerabilidad

Versiones afectadas: Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7

Enlaces de referencia:

  • 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

Explicación de la vulnerabilidad

Esta vulnerabilidad no está directamente relacionada con la ejecución de código; su causa principal es el análisis incorrecto del URI de la solicitud, lo que lleva a obtener erróneamente el nombre del archivo solicitado por el usuario, provocando consecuencias como la omisión de permisos o la ejecución de código.

Por ejemplo, cuando Nginx coincide con una solicitud que termina en .php, la envía a fastcgi para su análisis. Una configuración típica sería:

root@kitploit:~
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;
}

En condiciones normales (con pathinfo desactivado), solo los archivos con extensión .php se envían a fastcgi para su análisis.

Sin embargo, con CVE-2013-4547, si solicitamos 1.gif[0x20][0x00].php, este URI coincide con la expresión regular \.php$ y puede entrar en este bloque de location; pero una vez dentro, Nginx interpreta erróneamente que el archivo solicitado es 1.gif[0x20], y lo establece como el valor de SCRIPT_FILENAME para enviarlo a fastcgi.

fastcgi analiza según el valor de SCRIPT_FILENAME, lo que finalmente provoca una vulnerabilidad de análisis.

Por lo tanto, solo necesitamos subir un archivo cuyo nombre termine en espacio para que PHP lo analice.

Otro ejemplo: muchos sitios restringen las IP que pueden acceder al panel de administración:

root@kitploit:~
location /admin/ {
    allow 127.0.0.1;
    deny all;
}

Podemos solicitar el siguiente URI: /test[0x20]/../admin/index.php. Este URI no coincide con /admin/ en la directiva location, por lo que se omite la verificación de IP; pero finalmente se solicita el archivo /test[0x20]/../admin/index.php, es decir, /admin/index.php, logrando acceder al panel de administración. (Esto requiere que exista un directorio llamado test : es una característica de Linux. Si el directorio no existe, incluso al saltar al directorio padre, se producirá un error de archivo inexistente; en Windows no existe esta restricción.)

Prueba de la vulnerabilidad

Iniciar el entorno vulnerable:

root@kitploit:~
docker-compose build
docker-compose up -d

Una vez iniciado el entorno, visite http://your-ip:8080/ para ver una página de subida de archivos.

Este entorno utiliza una lista negra de validación: no podemos subir archivos con extensión .php, por lo que debemos aprovechar CVE-2013-4547. Subimos un archivo llamado 1.gif (observe el espacio al final):

Acceda a http://your-ip:8080/uploadfiles/1.gif[0x20][0x00].php y verá que PHP ha sido analizado:

Tenga en cuenta que [0x20] es un espacio y [0x00] es \0. Estos dos caracteres no necesitan codificación.

Descargar herramienta