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
cve-2019-11043 — CVE-2019-11043 PHP Execução Remota de Código | Kitploit
Ferramentas/GitHubGitHub/shadow-horse/cve-2019-11043
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoLabs e Prática
GitHubshadow-horse/cve-2019-11043

cve-2019-11043

CVE-2019-11043 PHP Execução Remota de Código

Ver Repositório
113há 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 execução remota de código no PHP (CVE-2019-11043)

1. Contexto

Em 26 de setembro, o PHP divulgou oficialmente o comunicado de vulnerabilidade, apontando que servidores que usam Nginx + php-fpm, sob determinadas configurações, apresentam vulnerabilidade de execução remota de código. Além disso, essa configuração é amplamente utilizada, o que representa um risco considerável.

O PoC da vulnerabilidade foi divulgado em 22 de outubro e a mídia de segurança nacional emitiu o alerta prontamente.

2. Descrição da vulnerabilidade

No Nginx, quando o fastcgi_split_path_info processa requisições contendo %0a, o PATH_INFO fica vazio ao encontrar o caractere de nova linha \n. Já o php-fpm possui uma falha lógica ao processar PATH_INFO vazio. Por meio de construção e exploração cuidadosas, o atacante pode causar execução remota de código.

Servidores Nginx + php-fpm, ao utilizarem a seguinte configuração, podem apresentar a vulnerabilidade de execução remota de código.

 location ~ [^/]\.php(/|$) {

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

    fastcgi_param PATH_INFO       $fastcgi_path_info;

    fastcgi_pass   php:9000;

    ...
}

3. Solução

Sem afetar as operações normais, remova a seguinte configuração do arquivo de configuração do Nginx:

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

4. PoC divulgado no GitHub

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

Esse PoC explora uma otimização na variável FastCGI _fcgi_data_seg, otimização presente apenas no PHP 7. Portanto, o exploit público só é válido no php7; no ambiente PHP5, é necessário um exploit diferente para que funcione.

5. Reprodução da vulnerabilidade

1. Configurar NGINX+PHP-FPM (php7)

Configure o ambiente, monte o nginx + php-fpm e valide se o funcionamento está correto.

  1. Baixe o php7, descompacte-o e entre no diretório

     wget -c http://cn2.php.net/distributions/php-7.2.4.tar.gz
     tar -xzvf php-7.2.4.tar.gz
    
  2. Instale os pacotes de dependência relacionados a compactação, ssl, etc.

     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. Compile o código-fonte com o configure

     ./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. Configure o php-fpm. Se houver vários PHP configurados, você pode alterar a porta 9000 para 9001

     修改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 a análise do PHP vulnerável

Adicione a seguinte configuração ao nginx.cof:

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;
     }

Reinicie o nginx

  1. Instale o go e compile o código do PoC

     go get github.com/neex/phuip-fpizdam(文件下载在go的src目录下)
    
     go build github.com/neex/phuip-fpizdam(全路径,会在当前目录生成运行文件)
    
  2. Execute o PoC

     ./phuip-fpizdam http://website.com/index.php
     ./phuip-fpizdam http://website.com/index.php?a=command
     
    

[Infelizmente, não sei qual é o problema na configuração do ambiente; a validação falhou]

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

4. Ambiente de validação integrado com docker

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

  1. Baixe os arquivos do projeto docker

  2. docker-compose up -d executa o container docker

  3. Execute o programa. Se a execução for bem-sucedida, use a vulnerabilidade para obter o retorno da execução do comando "id"

  4. Encerre o serviço docker docker ps
    docker stop id

Baixar ferramenta