前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >看我如何在Weblogic里捡一个XXE(CVE-2018-3246)

看我如何在Weblogic里捡一个XXE(CVE-2018-3246)

作者头像
FB客服
发布2018-12-04 10:42:21
9510
发布2018-12-04 10:42:21
举报
文章被收录于专栏:FreeBufFreeBufFreeBuf

*本文作者:黑客小平哥,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

前言

前几天空间被CVE-2018-2894刷屏,大家也都在研究和复现这个漏洞,正好我们安全团队也在玩这个漏洞,那大家就一起来玩咯。 本次的重点是复现,上传webshell,环境是内部一个测试环境,当我使用其中一个上传页面的时候,脑子突然热了一下,把文件后缀改成了.xml,结果就很6了。

地址如下:http://127.0.0.1:8338/ws_utc/begin.do。

分析

突然看到了什么,报错了,但是错误代码里有个“Internal Exception: org.xml.sax.SAXParseException”,这里竟然解析xml文件,这里说明一下,虽然这里是上传webshell的地方,xml文件貌似没什么用,但是当漏洞任意文件上传漏洞修复之后,这个xml文件是不会禁止的,这里既然解析了xml文件,说明这xml文件属于正常文件。

此处当然要传个payload试下了读下etc/passwd,发现还是报错,无法读取:

这就完了?当然不是,既然无法读取回显,那就换个payload反弹下shell试试:

设置本地监听:

返回包发现执行了payload代码,并且读取到服务器etc/passwd文件:

至此,该漏洞已经确定存在,并将及时报告给官方了,2018年10月16日,该漏洞已经在oracle发布。

漏洞简要分析:

根据路径,漏洞定位到ws-testpage-impl.jar文件里的“importWsTestConfig”方法:

代码如下:

可以发现,此处使用的方法为“ImportTestCaseAction”,进去看下该方法:

代码如下:

Unmarshaller接口是将XML数据转化为Java对象,此处是Unmarshaller使用不当,造成XXE,值得注意的是,经过和同事的不懈尝试,发现jdk8默认禁止外部DTD的,jdk6和jdk7是可以的,而weblogic默认的jdk是存在该问题的(详细版本范围有待进一步考证)。

Demo介绍:

此处jdk为1.8,无法实现XXE:

此处jdk为1.6,即可执行:

本次研究结束,欢迎大佬继续研究并指正。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 分析
    • 漏洞简要分析:
      • Demo介绍:
      相关产品与服务
      脆弱性检测服务
      脆弱性检测服务(Vulnerability detection Service,VDS)在理解客户实际需求的情况下,制定符合企业规模的漏洞扫描方案。通过漏洞扫描器对客户指定的计算机系统、网络组件、应用程序进行全面的漏洞检测服务,由腾讯云安全专家对扫描结果进行解读,为您提供专业的漏洞修复建议和指导服务,有效地降低企业资产安全风险。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档