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-19634 — Questo è un exploit di bypass del filtro che porta al caricamento arbitrario di file e all'esecuzione di codice remoto in class.upload.php <= 2.0.4 | Kitploit
Strumenti/GitHubGitHub/jra89/cve-2019-19634
Generazione di PayloadAnalisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration Testing
GitHubjra89/cve-2019-19634

CVE-2019-19634

Questo è un exploit di bypass del filtro che porta al caricamento arbitrario di file e all'esecuzione di codice remoto in class.upload.php <= 2.0.4

Vedi Repository
3686 anni faRevisionato da Kitploit

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

CVE-2019-19634 - class.upload.php <= 2.0.4 Caricamento arbitrario di file

  • Autore - Jinny Ramsmark
  • Fornitore interessato - Verot.net
  • Prodotto interessato - class.upload.php <= 2.0.4
  • Testato su Ubuntu 14.04 appena installato con PHP5 e Apache
  • In particolare Debian/Ubuntu è risultato vulnerabile poiché aggiungono l'estensione pht tra gli altri gestori PHP disponibili. In questo caso class.upload.php non ha inserito l'estensione pht nella blacklist.
  • Questa CVE è direttamente correlata a CVE-2019-19576

Descrizione

Questo è un exploit di bypass del filtro che consente il caricamento arbitrario di file e l'esecuzione remota di codice. Lo script class.upload.php filtra "file e contenuti pericolosi" e li rinomina con estensione .txt. Esegue anche diversi tipi di trasformazione sull'immagine caricata, che normalmente distruggerebbero qualsiasi payload iniettato, anche se il filtro delle estensioni dei file potesse essere bypassato.

Il filtro delle estensioni dei file è una blacklist, quindi ogni volta che viene introdotta una nuova estensione (in questo caso pht), o se ne è stata dimenticata una, è possibile caricare un file PHP. Il contenuto deve comunque essere un'immagine valida e passerà attraverso le funzioni imagecreatefromjpeg e simili. A questo scopo ho scritto lo script inject.php che essenzialmente forza bruta attraverso diverse immagini fino a trovarne una in cui il payload non viene distrutto dal processo eseguito da class.upload.php. Questo ci dà effettivamente un caricamento arbitrario di file e un'esecuzione di codice molto furtiva, poiché rimane un'immagine valida e viene visualizzata come tale nelle pagine in cui viene caricata.

Lo script inject.php sarà presto riscritto per diventare uno strumento più generale per questo tipo di attacco, ma per ora sarà incluso come script individuale in questo tipo di rilascio CVE.

Cronologia (scadenza predefinita di 90 giorni)

  • 2019-12-07 - Segnalato allo sviluppatore e a K2 di JoomlaWorks (sono interessati)
  • 2019-12-07 - Lo sviluppatore ha risposto e ha rilasciato una patch
  • 2019-12-08 - Lo sviluppatore ha risposto e ha accettato di rilasciare le informazioni

File inclusi in questo PoC

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

Utilizzo

Lo script upload.php è il codice di esempio dal github di verot.net. Ho pensato che fosse meglio dimostrare questa vulnerabilità utilizzando il loro stesso codice di esempio.

  • Esegui "php inject.php" in un terminale, genererà un'immagine di esempio con un semplice payload nel file.
  • Quando lo script termina, produrrà un file chiamato "image.jpg.pht".
  • Naviga fino al file upload.php e carica image.jpg.pht, passerà e ora avrai una shell

Esempio

root@kitploit:~
user@ayu:/var/www/html# php inject.php 
-=Imagejpeg injector 1.8=-
[+] Fetching image (100 X 100) from http://lorempixel.com/100/100/
[+] Jumping to end byte
[+] Searching for valid injection point
[!] Temp solution, if you get a 'recoverable parse error' here, it means it probably failed
[+] It seems like it worked!
[+] Result file: 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

Soluzione proposta

  • Non utilizzare una blacklist di estensioni di file.
  • Utilizza invece una whitelist di estensioni consentite per impostazione predefinita.
  • Oppure non avere alcuna estensione sui file caricati e memorizza il nome originale altrove.

Riferimento

  • https://github.com/verot/class.upload.php/blob/2.0.5/src/class.upload.php#L3068
Scarica lo strumento