Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cve-2019-11043 — CVE-2019-11043 Exécution de code à distance PHP | Kitploit
Outils/GitHubGitHub/shadow-horse/cve-2019-11043
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubshadow-horse/cve-2019-11043

cve-2019-11043

CVE-2019-11043 Exécution de code à distance PHP

Voir le dépôt
11il y a 6 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Vulnérabilité d'exécution de code à distance PHP (CVE-2019-11043)

1. Contexte

Le 26 septembre, PHP a publié un avis de vulnérabilité, indiquant que les serveurs utilisant Nginx + php-fpm, sous certaines configurations, présentent une vulnérabilité d'exécution de code à distance. Cette configuration étant largement utilisée, le danger est élevé.

Le PoC de la vulnérabilité a été divulgué le 22 octobre, et les médias de sécurité nationaux ont émis des alertes en temps opportun.

2. Description de la vulnérabilité

Lorsque Nginx traite des requêtes contenant %0a avec fastcgi_split_path_info, PATH_INFO devient vide en raison du saut de ligne \n. PHP-fpm, lorsqu'il traite un PATH_INFO vide, présente un défaut logique. Un attaquant peut, par construction et exploitation minutieuses, provoquer une exécution de code à distance.

Les serveurs utilisant Nginx + php-fpm avec la configuration suivante peuvent être vulnérables à l'exécution de code à distance.

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

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

    fastcgi_param PATH_INFO       $fastcgi_path_info;

    fastcgi_pass   php:9000;

    ...
}

3. Solution

Sans impact sur les opérations normales, supprimez les configurations suivantes du fichier de configuration Nginx :

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

4. POC publié sur GitHub

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

Ce POC utilise l'optimisation dans la variable FastCGI _fcgi_data_seg, qui n'est présente que dans PHP7. Par conséquent, l'exploit publié n'est efficace que sous PHP7. Sous PHP5, un exploit différent est nécessaire.

5. Reproduction de la vulnérabilité

1. Configuration de NGINX+PHP-FPM (php7)

Configurez l'environnement, mettez en place nginx + php-fpm, et vérifiez que le fonctionnement est correct.

  1. Téléchargez php7, décompressez et entrez dans le répertoire

    root@kitploit:~
     wget -c http://cn2.php.net/distributions/php-7.2.4.tar.gz
     tar -xzvf php-7.2.4.tar.gz
    
  2. Installez les paquets de dépendances liés à la compression, 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. configure, compilez le code source

    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. Configurez php-fpm. Si plusieurs PHP sont configurés, vous pouvez modifier le port 9000 en 9001

    root@kitploit:~
     Modifier le fichier de configuration php-fpm :
     $ cd /usr/local/php/etc
     $ cp php-fpm.conf.default php-fpm.conf
     $ vi php-fpm.conf
     Supprimer le point-virgule devant pid = run/php-fpm.pid
     $ cd php-fpm.d
     $ cp www.conf.default www.conf  (modifier le port)
     $ vi www.conf
     Modifier l'utilisateur et le groupe en un utilisateur non-root
    
  5. ./php-fpm

2. Configuration de l'analyse PHP vulnérable

Ajoutez la configuration suivante dans nginx.conf :

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

Redémarrez nginx.

  1. Installez Go, compilez le code POC

    root@kitploit:~
     go get github.com/neex/phuip-fpizdam (le fichier est téléchargé dans le répertoire src de Go)
    
     go build github.com/neex/phuip-fpizdam (chemin complet, génère le fichier exécutable dans le répertoire courant)
    
  2. Exécutez le POC

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

[Malheureusement, en raison d'un problème inconnu dans la configuration de l'environnement, la vérification a échoué]

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

4. Environnement de validation intégré Docker

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

  1. Téléchargez le fichier du projet Docker

  2. docker-compose up -d pour exécuter le conteneur Docker

  3. Exécutez le programme, l'exécution réussie s'affiche. Utilisez la vulnérabilité pour exécuter la commande 'id'

  4. Arrêtez le service Docker docker ps
    docker stop id

Télécharger l’outil