JBOSSAS5.x6.x反序列化命令执⾏漏洞(CVE-2017-12149)JBOSS AS 5.x/6.x 反序列化命令执⾏漏洞(CVE-2017-12149)
1. 漏洞描述
漏洞描述:该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进⾏任何安全检查的情况下尝试将来⾃客户端的数据流进⾏反序列化,从⽽导致了漏洞。
漏洞编号:CVE-2017-12149
漏洞等级:⾼危
漏洞版本:
Jboss AS 5.x
JbossAS 6.x
2. 漏洞简介
2017年8⽉30⽇,Redhat公司发布了⼀个JbossAS 5.x系统的远程代码执⾏严重漏洞通告,相应的漏洞编号为CVE-2017-12149。近期有安全研究者发现JbossAS 6.x也受该漏洞影响,攻击者可能利⽤此漏洞⽆需⽤户验证在系统上执⾏任意命令。
漏洞名称JBOSS AS 5.x/6.x 反序列化命令执⾏漏洞
威胁类型远程命令执⾏
威胁等级⾼
漏洞ID CVE-2017-12149
受影响系统及应⽤版本Jboss AS 5.x Jboss AS 6.x
3. 漏洞分析
cve漏洞库该漏洞存在于http invoker 组件的 ReadOnlyAccessFilter 的 doFilter 中。如下图所⽰:
⽅法中的代码在没有进⾏任何安全检查的情况下,将来⾃客户端的数据流(InputStream())进⾏了反序列化操作(红⾊箭头所⽰),从⽽导致了反序列化漏洞。
4. 漏洞复现
环境⽣成后,访问页⾯,可以看到jboss的⾸页:
我们使⽤bash来反弹shell,但由于Runtime().exec()中不能使⽤管道符等bash需要的⽅法,我们需要⽤进⾏⼀次编码。
将构造好的反弹shell的payload(将ip端⼝设置为你⾃⼰想要反弹的ip和端⼝):
使⽤⽹上公布的java反序列化的payload构造⼯具ysoserial-0.0.6-SNAPSHOT-all.jar来构造payload,
将⽣成的poc.ser拷贝到我们写好的poc脚本中,将url替换成你⾃⼰的url,运⾏脚本,在你⾃⼰的服务器
上通过nc监听反弹的端⼝
运⾏脚本,可以看到成功反弹shell,获取flag:
5. 修复建议
1. 不需要 http-invoker.sar 组件的⽤户可直接删除此组件。
2. 添加如下代码⾄ http-invoker.sar 下 l 的 security-constraint 标签中,对 http invoker 组件进⾏访问控制:
<url-pattern>/*</url-pattern>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论