大数跨境
0
0

看我如何在星巴克企业数据库找到影响百万用户的SQL注入漏洞并赢得最高赏金

看我如何在星巴克企业数据库找到影响百万用户的SQL注入漏洞并赢得最高赏金 代码卫士
2019-08-08
1
导读:山重水复疑无路,柳暗花明又一村。

 聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队

本周,研究员 Eugene Lim 在星巴克企业数据库中发现了一个严重的 SQL 注入漏洞,影响数据库中存储的近百万金融记录,并因此获得星巴克为严重漏洞提供的最高赏金4000美元。
Lim 于4月8日发现漏洞,星巴克在2天内修复。HackerOne在8月6日公开漏洞报告
Lim 表示,他开始检查目标端点中的文件上传漏洞时发现他正在运行微软 Dynamics AX 企业资源规划 (ERP) 平台,于是测试了端点中的 XXE 缺陷。如下是他发布的具体漏洞查找过程:
我最开始是通过常见的子域名枚举发现这个端点的。从表面来看,它看似是一个非常好的目标:一个简单的 HTML 文件上传表单。我开始通过 PHP shell 等测试是否存在不受限的文件上传漏洞,但我很快从出错信息中获悉,虽然这些文件被发送给服务器,但它们是被当做 XML 文件处理的而并未保存在服务器上。
幸运的是,这些出错信息帮助我构造了一个格式适当的且服务器接受的 XML 文件。由于该文件期待的节点是 MainAccountCreditDebitInvoice 等等,因此它看似是某种会计数据库条目。另外,这些出错信息包含对微软 Dynamics AX(一款企业金融/会计软件平台)的参照。于是我开始测试 XXE 攻击。然而,这些外部实体似乎遭拦截,尽管我多次尝试绕过,仅实现拒绝服务后果。这个结果不够好,因此经过几次尝试后我最终转移至其它目标。

顿悟时刻

一个多月后,我开始重新思考这个问题。幸运的是这个目标还在线。这次我认为如果把将 XML 输入输入到数据库,那么我应该测试是否存在 SQL 注入漏洞。具体而言,MainAccount 看起来有戏,因为它接受数字 ID 如 <MainAccount>123456</MainAccount>而且可能用于SQL 查询  WHERE 语句中。
然而,省略符 () 似乎被适当地转义了。稍作测试后我发现了我的错误:XML 格式禁止包括省略符在内的某些字符。如要包含,必须将省略符作为转义实体输入。我不能使用 <MainAccount>123456</MainAccount>,而必须使用<MainAccount>123456&apos;</MainAccount>。服务器立即返回一个database error 信息,这说明我的路子是对的!
又进行了一些手动测试后,我发现可以构造基于时间的 SQL 注入。之后我转向标记为tamperhtmlencode的sqlmap来自动化攻击。经过几分钟焦灼的等待后,sqlmap 确认了利用代码并返回数据库版本:Microsoft SQL Server 2012。我成功了!

影响评估

因此我手里有了一个 SQL 注入漏洞,但是如果数据库未被使用或者可以忽略不计怎么办?于是我决定测试三件事情:数据库中的数据类型、数据量以及数据的新近度。然而,我很快遇到了障碍:作为企业数据库,微软 Dynamics AX 非常庞大:快速检查结果显示该数据库中有数千个表。我必须专注于主表,但从哪里开始呢?
幸运的是,微软提供了关于 Dynamics AX的在线文档。经过一番研究后我发现了默认主表以及相关列。几分钟后,答案浮出水面:截至去年,有近百万条记录中包含真实的会计信息。完美!我立即停止测试并开始编写漏洞报告。

小贴士

不要做井底之蛙。不要因为它是文件上传就只关注上传一个反向 shell;不要因为它接受 XML 文件就只关注 XXE。
做好笔记并重新审视之前的目标。我挖的很多漏洞都是源自重新查看老旧的端点。适当放一放可以发现新的攻击路径。
在初始利用后评估漏洞影响,但不要太没有边际。
感谢星巴克团队以及HackerOne 诊断人员的快速响应和良好沟通!

 



推荐阅读

看我如何黑掉 Outlook 安卓 app,找到 CVE-2019-1105

【缺陷周话】第 2 期 :SQL 注入



原文链接

https://hackerone.com/reports/531051

https://www.securityweek.com/sql-injection-vulnerability-exposed-starbucks-financial-records


题图:Pixabay License




本文由奇安信代码卫士编译,不代表奇安信观点,转载请注明“转自奇安信代码卫士 www.codesafe.cn”




奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。



【声明】内容源于网络
0
0
代码卫士
奇安信代码卫士是国内第一家专注于软件开发安全的产品线,产品涵盖代码安全缺陷检测、软件编码合规检测、开源组件溯源检测三大方向,分别解决软件开发过程中的安全缺陷和漏洞问题、编码合规性问题、开源组件安全管控问题。本订阅号提供国内外热点安全资讯。
内容 5153
粉丝 0
代码卫士 奇安信代码卫士是国内第一家专注于软件开发安全的产品线,产品涵盖代码安全缺陷检测、软件编码合规检测、开源组件溯源检测三大方向,分别解决软件开发过程中的安全缺陷和漏洞问题、编码合规性问题、开源组件安全管控问题。本订阅号提供国内外热点安全资讯。
总阅读4.9k
粉丝0
内容5.2k