声 明
本文由Tide安全团队成员“Tide”首发于FreeBuf TideSec专栏:
https://zhuanlan.freebuf.com/column/index/?name=TideSec
文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
一、漏洞背景
CNCERT发现Oracle公司出品的基于JavaEE结构的中间件WebLogic产品存在一个远程上传漏洞,随后Oracle官方发布了关键补丁更新CPU(Critical Patch Update),其中针对可造成远程文件上传的高危漏洞 CVE-2018-2894 进行修复:
http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html
二、漏洞概要
谁应该读这个 |
Oracle WebLogic Server 的开发者和用户 |
---|---|
漏洞的影响 |
WebLogic 管理端未授权的页面存在任意上传getshell漏洞,可直接获取权限。 |
危害程度评分 |
9.8 分 |
建议 |
升级到官方最新版本。 |
受影响的软件 |
Oracle WebLogic Server, 版本10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3 |
CVE 标识符 |
CVE-2018-2894 |
三、搭建环境
安装漏洞影响范围内的Weblogic版本:10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3。
启动服务器,访问http://localhost:7001/ws_utc/config.do
修改当前工作目录Work Home Dir为:C:OracleMiddlewareOracle_Homeuser_projectsdomainsbase_domainserversAdminServertmp_WL_internalcom.oracle.webservices.wls.ws-testclient-app-wls_12.1.3cmprq0war
选择左边菜单栏中的安全选项按钮后,点击添加Keystore设置。
输入Keystore名字后,选择文件上传按钮添加任意文件,名字可以为空格替代。
通过抓包可获得上传的路径为:http://localhost:7001/ws_utc/resources/setting/keystore?timestamp=1535682238190,上传后的路径为时间戳_文件名格式,在此处我把文件名进行重命名,并修改上传目录。
抓返回包和查看真实目录可发现文件已上传成功。
测试已上传文件jfolder.jsp。
四、触发条件
1.需要知道部署应用的web目录。
2. ws_utc/config.do在开发模式下无需认证,在生产模式下需要认证。具体可见Oracle® Fusion Middleware Administering Web Services
五、漏洞分析
分析更改目录函数,发现该函数未做任何限制。
从getKeyStorePath()获取到所要写入路径。
把所选的上传文件传到了storePath目录里,文件命名条件为fileNamePrefix + "_" + attachName,采用了POST请求中URL地址上携带的参数timestamp的值加上下划线拼接起来的文件名,同时也没有发现有任何过滤和检查。
六、修复建议
1.设置Config.do、begin.do页面登录授权后访问;
2.IPS等防御产品可以加入相应的特征;
3.升级到官方最新版本。
七、参考链接
http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html
https://mp.weixin.qq.com/s/y5JGmM-aNaHcs_6P9a-gRQ
E
N
D
guān
关
zhù
注
wǒ
我
men
们
Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防、Web安全、移动终端、安全开发、IoT/物联网/工控安全等方向。
想了解更多Tide安全团队,请关注团队官网: http://www.TideSec.net 或长按二维码关注公众号:
原文始发于微信公众号(白帽子):【CVE-2018-2894】WebLogic任意文件上传漏洞复现与分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论