看我如何发现Uber合作方网站XXE 0day漏洞并获得9000美元赏金 ---XXE读取目录
2017-02-15 14:55
393 查看
近期,俄罗斯渗透测试人员Vladimir Ivanov发现了反勒索数据备份服务商Code42的一个XXE 0day漏洞,利用该漏洞可以从使用Code42服务的公司窃取相关备份数据,这些公司包括Uber、Adobe、Lockheed Martin(洛克希德马丁)等。作者在这篇文章中分享了该漏洞的发现过程。
Code 42,成立于2007年,最初以个人数据保护和备份软件起家,随后便逐渐拓展到了企业数据备份和反勒索服务领域。目前该公司在全球管理并保护着大量企业和组织机构数据,而且该公司所有的数据备份和存储解决方案都是跨平台的。
漏洞发现过程
2016年5月,我在参与HackerOne平台的Uber漏洞赏金项目过程中,偶然通过测试发现了以下这个HTTP应用管理页面,这是Uber与合作公司Code42的一个系统服务:通过该页面的API接口https://backup.uberinternal.com:4285/api/serverEnv
分析发现,其部署使用了Code42最新版本(5.2.0)的服务框架,而且Code42的相关产品在CVE漏洞库中没有任何披露漏洞,想要发现安全问题,密码破解显然不是一个可行方案,唯一可行的选择就是,去发现该系统的未知漏洞。
接下来,我从Code42官网浏览了一些公开说明文档,从中寻找涉及的API接口的方法描述,然后构造自动化的暴力猜解方式去请求这些接口,尝试发现其中一些不需要身份验证的API。幸运的是,最终发现其中一个API存在问题,任何外部用户都可以对其作出有效的登录访问:https://www.crashplan.com/apidocviewer/#SsoAuthLoginResponse
在Code42公开文档中对/api/SsoAuthLoginResponse的描述是这样的:接收SAMLResponse的GET参数,其中SAMLResponse包含了base64编码的XML用户验证数据:
由此,我构造了一个指向我个人VPS的XML外部实体对该API接口进行测试,尽管测试中使用的XXE漏洞利用代码非常简单,但出于保密,在此就不做公开。从以下测试的端口监听信息可以看出,该服务系统存在XXE外带数据(Out-of-Band)攻击漏洞:(XXE-OOB漏洞详情参考Freebuf-《DTD/XXE 攻击笔记分享》、BlackHat
2013 《XXE-Out of Band Attack》)
由于系该统使用了java框架,而俄罗斯的OnSec实验室曾针对Java程序的XXE-OOB攻击,作出了相关研究,并给出相应的payload,和一个通过ftp服务读取系统目录的漏洞利用脚本xxe-ftp.rb,因此,我直接用xxe-ftp程序进行了验证。
xxe-ftp.rb原理是这样的,攻击者主机运行该脚本后,8088端口作为http服务端负责获取OOB攻击payload,而8077端口用于ftp连接服务:
经验证,我成功获取到了系统服务器/home/目录下的列表,并向HackerOne平台作了漏洞报告,获取列表截图如下:
经Uber安全团队向Code42确认,这是一个0day漏洞,Uber安全团队要求我给出更多漏洞详细证明。在他们的许可下,我又作了进一步渗透测试,最终发现了备份日志的存储目录文件。以下是系统服务器本地最近的某一储存日志文件,其中包含了操作用户名和其它敏感信息:
测试结果已经很能说明问题:只要运行有Code42周边服务或托管业务的公司,我都可以利用该漏洞获取到其备份系统网站内的所有备份文件。为了解该漏洞的现实威胁,我利用Code42服务端口4285在shodan上进行识别,发现了一些使用Code42相关服务的IP,其中还包括了一家全球知名的安全公司*&^#$#!:
漏洞披露进程
2016.5.6 通过HackerOne向Uber提交最初漏洞报告;2016.5.23 Code42更新了软件,并释出了最新安全的5.2.0.1版本软件;
2016.6.28 Uber向我发放了9000美元漏洞赏金;
2016.8.24 Code42要求我待其所有客户公司部署完最新版软件后再发表该漏洞的分析文章;
2017.1.24 Code42告知我可以发表文章。
*参考来源:blogspot,securityaffairs,FB小编clouds编译,转载请注明来自FreeBuf.COM。
clouds94篇文章等级:7级
|
|
上一篇:【漏洞预警】QEMU高危漏洞可执行任意代码 影响国内多家公有云平台
下一篇:新曝WordPress REST API内容注入漏洞详解
发表评论
已有 6 条评论
厦门-Robert
(1级)
2017-02-14 回复
1楼
我靠,牛X啊,靠赚赏金的黑客呀!
亮了(4)
elppas 2017-02-14
回复
2楼
有点迷糊,是你本人获得赏金还是转的文章啊?
亮了(2)
yuedexin
(1级)
2017-02-14 回复
3楼
牛人,我的偶像。。。
亮了(0)
cafexss
(4级) root@localhost
2017-02-14 回复
4楼
awesome
亮了(0)
大蝉 2017-02-15
回复
5楼
又见小编的"看我"系列
亮了(1)
黑客小平哥 2017-02-15
回复
6楼
厉害了我的哥
相关文章推荐
- 【技术分享】看我如何挖到谷歌Buganizer系统3个漏洞并获得15600美元赏金
- 漏洞分析丨看我如何发现Github企业版程序SQL注入漏洞并获得5000美刀赏金
- 【每日安全资讯】新手上路 | 看我如何发现大疆公司网站的一个小漏洞
- 如何获得当前本进程所在的目录
- 我的图象是JPEG文件,是放在远程一个固定IP电脑下面的一个目录,我如何读取这个JPEG文件呢?
- 新网站如何获得外部的优质外链
- 如何在VS 2005 SP1中使用VS的web服务器运行一个相对于根目录\的网站
- 如何在 IIS 6.0 中使用命令行脚本管理网站和 Web 虚拟目录
- 如何让虚拟目录里面的webconfig不继承网站的设置(转)
- 如何用VB获得Windows各类系统目录
- 如何让虚拟目录里面的webconfig不继承网站的设置
- asp.net下返回文件路径,获得虚拟目录的网站的根目录
- 怎样获得网站的根目录
- 如何访问ASP.Net网站bin目录内的文件
- aspx页面中是这样获得网站根目录的物理路径的
- 如何解决访问某些网站会跳出对话框标题为:address Book Viewer ,提示:"无法连接制定的目录服务.服务也许暂时不可用,或服务器名称不正确。"
- 如何获得某个目录下所有的文件名,包括子目录
- .net中,如何获得活动目录(AD)上的密码失效时间?
- 如何让虚拟目录里面的webconfig不继承网站[转]
- 如何在VS 2005 SP1中使用VS的web服务器运行一个相对于根目录“/”的网站