JNDI原理解析
AI-摘要
GPT-4.0-turbo GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
JNDI原理解析
Takake JNDI(Java Naming and Directory Interface)注入是一种攻击技术,常见于Java应用程序中。JNDI是Java平台提供的一种API,用于访问命名和目录服务,例如LDAP(轻量级目录访问协议)。JNDI注入攻击利用了应用程序未正确验证用户提供的输入,导致攻击者能够通过构造恶意的JNDI名称,执行未经授权的操作。
1.命名/目录服务提供者
RMI(JAVA远程方法调用)
LADP(轻型目录访问协议)
CORBA(公共对象请求代理体系结构)
DNS(域名服务器)
JDK6 | JDK7 | JDK8 | JDK11 | |
---|---|---|---|---|
RMI可用性 | 6u132以下 | 7u122以下 | 8u113以下 | 无 |
LDAP可用性 | 6u211以下 | yu201以下 | 8u119以下 | 11.0.1以下 |
1.1.RMI示例
1 | import javax.naming.InitialContext; |
1.2.LDAP示例
1.3.DNS示例(无害,可用于扫描工具或探测)
DNS: //ewpp7z.dnslog.cn
漏洞端和DNS服务器直连
若存在jndi注入则,则存在回显
1.4.注意:
1.类名需要和LDAP服务的转发名一致.
2.static 静态代码的执行顺序, static 代码块, static 关键字修饰, 构造函数。
3.再exp类中不能写 package包位置,因为类在实际加载过程中并未加载此包。
4.注意编译当前类的java版本,大版本号需要和漏洞服务器版本一致
5.审计关键字:lookup函数参数可控。
6.利用链工具JNDIExploit
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果