看我如何发现Uber合作方网站XXE 0day漏洞并获得9000美元赏金

简介:


近期,俄罗斯渗透测试人员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,其中还包括了一家全球知名的安全公司*&^#$#!:

原文发布时间为:2017-02-19

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关文章
|
小程序 搜索推荐 安全
【开题报告】基于uniapp的在线蛋糕商城小程序的设计与实现
【开题报告】基于uniapp的在线蛋糕商城小程序的设计与实现
676 0
|
9月前
|
人工智能 Java 数据库
飞算JavaAI vs 文心快码,面对复杂需求,谁的代码精准度更胜一筹?
在数字化浪潮中,Java 作为核心编程语言,各类开发工具不断涌现。百度文心快码与飞算 Java AI 凭借先进的人工智能技术成为焦点。综合对比数据库表设计、代码完整度及用户体验,二者谁更胜一筹?
|
8月前
|
人工智能 自然语言处理 测试技术
通义灵码入选 “2025 年值得关注的 AIGC 产品”,是唯一入选的 AI 编程产品
阿里云的通义灵码是一款基于通义大模型的AI编程助手,能够智能生成代码、优化结构、排查错误并自动生成测试用例,支持多种主流编程语言。在2025年入选《值得关注的AIGC产品》榜单,凭借卓越技术与广泛应用场景成为国内开发者首选。通义灵码已在国内多个行业落地,大幅提升开发效率与代码质量,同时针对中文编程场景优化,支持企业内网部署保障数据安全,推动AI编程技术在教育与科研领域的创新应用。
|
数据可视化 前端开发 JavaScript
前端的可视化
前端的可视化
|
10月前
|
缓存 NoSQL Redis
Redis原理—3.复制、哨兵和集群
详细介绍了Redis的复制原理、哨兵原理和集群原理。
|
数据采集 存储 数据可视化
Python实战项目——餐厅订单数据分析(一)
Python实战项目——餐厅订单数据分析(一)
1656 0
java线程池执行任务(一次任务、固定间隔时间任务等)
java线程池执行任务(一次任务、固定间隔时间任务等)
651 1
|
前端开发 JavaScript
实现瀑布流的几种方式(效果图)
实现瀑布流的几种方式(效果图)
279 0
|
存储
数组与链表有什么区别
数组与链表有什么区别
532 1
|
存储 固态存储 安全
服务器硬件基础知识
服务器硬件基础知识
1124 1