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-19634 — Il s'agit d'un exploit de contournement de filtre qui entraîne le téléchargement arbitraire de fichier et l'exécution de code à distance dans class.upload.php <= 2.0.4 | Kitploit
Outils/GitHubGitHub/jra89/cve-2019-19634
Génération de PayloadsAnalyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'Intrusion
GitHubjra89/cve-2019-19634

CVE-2019-19634

Il s'agit d'un exploit de contournement de filtre qui entraîne le téléchargement arbitraire de fichier et l'exécution de code à distance dans class.upload.php <= 2.0.4

Voir le dépôt
368il y a 6 ansVérifié par Kitploit

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

CVE-2019-19634 - class.upload.php <= 2.0.4 Téléchargement arbitraire de fichiers

  • Auteur - Jinny Ramsmark
  • Fournisseur concerné - Verot.net
  • Produit concerné - class.upload.php <= 2.0.4
  • Testé sur Ubuntu 14.04 fraîchement installé avec PHP5 et Apache
  • Plus précisément, Debian/Ubuntu s'est avéré vulnérable car ils ajoutent l'extension pht entre autres aux gestionnaires PHP disponibles. Dans ce cas, class.upload.php n'a pas mis l'extension pht sur liste noire.
  • Cette CVE est directement liée à CVE-2019-19576

Description

Il s'agit d'une exploitation de contournement de filtre qui aboutit à un téléchargement arbitraire de fichiers et à une exécution de code à distance. Le script class.upload.php filtre les "fichiers et contenus dangereux" et les renomme avec l'extension de fichier txt. Il effectue également différents types de transformations sur l'image téléchargée, ce qui détruirait normalement toute charge utile injectée, même si le filtre d'extension de fichier pouvait être contourné.

Le filtre d'extension de fichier est une liste noire, donc dès qu'une nouvelle extension est introduite (dans ce cas pht), ou que l'une d'elles a été oubliée, un fichier PHP peut être téléchargé. Le contenu doit cependant toujours être une image valide et passera toujours par les fonctions imagecreatefromjpeg et similaires. Dans ce but, j'ai écrit le script inject.php qui va essentiellement forcer par tâtonnements son chemin à travers différentes images jusqu'à en trouver une où la charge utile ne sera pas détruite par le processus effectué dans class.upload.php. Cela nous donne effectivement un téléchargement arbitraire de fichiers et une exécution de code très furtive puisque c'est toujours une image valide et qu'elle sera affichée comme telle sur les pages où elle est téléchargée.

Le script inject.php sera bientôt réécrit pour devenir un outil plus général pour ce type d'attaque, mais pour l'instant il sera simplement inclus sous forme de scripts individuels dans ce type de publication de CVE.

Chronologie (délai par défaut de 90 jours)

  • 2019-12-07 - Signalé au développeur et à K2 de JoomlaWorks (ils sont concernés)
  • 2019-12-07 - Le développeur a répondu et a publié un correctif
  • 2019-12-08 - Le développeur a répondu et a accepté de divulguer les informations

Fichiers inclus dans cette POC

  • composer.json
  • upload.php
  • inject.php

Utilisation

Le script upload.php est l'exemple de code provenant du github de verot.net. J'ai pensé qu'il serait préférable de démontrer cette vulnérabilité en utilisant leur propre exemple de code.

  • Exécutez "php inject.php" dans un terminal, cela générera une image exemple avec une charge utile simple dans le fichier.
  • Une fois le script terminé, il produira un fichier appelé "image.jpg.pht".
  • Accédez au fichier upload.php et téléchargez image.jpg.pht, il passera et vous aurez maintenant un shell

Exemple

root@kitploit:~
user@ayu:/var/www/html# php inject.php 
-=Injecteur imagejpeg 1.8=-
[+] Récupération de l'image (100 X 100) depuis http://lorempixel.com/100/100/
[+] Saut au dernier octet
[+] Recherche d'un point d'injection valide
[!] Solution temporaire, si vous obtenez une 'erreur d'analyse récupérable' ici, cela signifie que cela a probablement échoué
[+] Cela semble avoir fonctionné !
[+] Fichier résultat : image.jpg.pht
root@kitploit:~
user@ayu:/var/www/html# curl -v -o - http://localhost/images/image_resized.phar?c=uname%20-a | grep -aPo "(Linux.*GNU)"
Linux ayu 5.0.0-36-generic #39-Ubuntu SMP Tue Nov 12 09:46:06 UTC 2019 x86_64 x86_64 x86_64 GNU

Solution proposée

  • Ne mettez pas les extensions de fichier sur liste noire.
  • Utilisez plutôt une liste blanche d'extensions autorisées par défaut.
  • Ou alors, n'ayez tout simplement aucune extension sur les fichiers téléchargés et stockez le nom original ailleurs.

Référence

  • https://github.com/verot/class.upload.php/blob/2.0.5/src/class.upload.php#L3068
Télécharger l’outil