专栏首页FreeBuf就一加手机支付漏洞讨论在线支付中的安全风险

就一加手机支付漏洞讨论在线支付中的安全风险

背景介绍

近期,Fidus团队的研究人员在OnePlus(一加手机)论坛上发现了一个非常有意思的帖子。在这个帖子中,很多论坛用户表示他们在2017年11月份曾在OnePlus官网上进行过信用卡消费,而随后信用卡欺诈事件便发生在了这些用户的身上,所以他们才在论坛中发帖询问社区中是否有其他用户遇到了同样的问题(剧透:很多用户都遇到了这个问题)。

值得一提的是,近期OnePlus使用了Magento电子商务平台,而这个常见的平台也是信用卡攻击事件经常发生的地方。

但是,这些发现并不能证明OnePlus发生了数据泄露。因此,我们接下来一起看一看OnePlus当前所采用的支付流程以及系统结构,并分析一下为何用户的信用卡信息会到攻击者的手上。

事件分析-为何会发生这种事情?

我们对OnePlus网站的支付流程进行了一遍完整的检查,有趣的是,网站的支付页面所请求的客户支付卡数据会直接存储在网站中,这也就意味着用户所输入的全部支付信息都可以被攻击者直接拦截。当支付表单提交之后,支付信息将会被发送到第三方提供商进行处理,但是在数据被加密之前,攻击者可以通过在窗口中嵌入恶意代码来窃取信用卡数据。

OnePlus则表示,他们不负责处理任何的支付卡信息,支付交易的处理是由CyberSource处理的,但是支付表单却仍然托管在OnePlus的基础设施中。如果攻击者拥有该页面的读写权限,那么他们就能够向页面中注入JavaScript代码并尝试从客户端的支付表格中窃取键入的数据。

剖析支付流程

对于Magento电子商务平台来说,信用卡欺诈已经是“家常便饭“了,早在2015年,Sucuri就已经发文讨论过这个问题了【文章链接】。

目前来说,攻击者主要有两种从电子商务平台中窃取信用卡数据的方法。第一种,就是利用JavaScript代码直接从客户端窃取。这种方法需要在Web页面中托管恶意JavaScript代码,而恶意代码将会让客户设备在后台悄悄地给攻击者控制的服务器发送伪造请求。这样一来,攻击者就可以利用伪造的请求来发送用户所有的信用卡数据了。我们对OnePlus的结算页面源代码进行了分析,但是并没有发现任何的恶意JavaScript代码,不过也有可能是攻击者在完成攻击之后将恶意代码移除了。

另一种方法也是攻击者常用的一种方法,根据Sucuri所发的文章,在实现这种攻击时,攻击者不仅需要修改app/code/core/Mage/Payment/Model/Method/Cc.php文件,而且还需要使用Shell访问后台服务器。

Cc.php文件负责在电子商务网站中存储支付卡数据,其实无论支付卡数据是否成功存储,服务器都会调用这个文件。因此,攻击者就可以在这个文件中注入恶意代码,并远程窃取信用卡信息。由于整个攻击过程发生在Cc.php文件中的prepareSave()函数中,所以此时的信用卡数据还没有被加密。恶意代码样本如下所示:

下图显示的是攻击者窃取信用卡元数据的大致流程:

漏洞影响

目前为止,OnePlus论坛中已经有超过40名用户表示自己受到了信用卡欺诈攻击,而且也有很多Reddit用户同样在抱怨类似的问题。

除此之外,很多Twitter用户也开始讨论这种潜在的安全问题了。

攻击者如何利用这个漏洞?

1. 当用户点击了订单按钮之后,用户的浏览器会向OnePlus电子商务服务器发送请求;

  1. OnePlus电子商务服务器会返回带有支付表单的HTML页面;
  2. 客户在表单中输入自己的支付信息,然后点击提交按钮;
  3. 支付数据直接从用户的浏览器发送到了CyberSource

当OnePlus电子商务服务器给用户返回带有支付表单的HTML页面之后,注入在其中的JavaScript代码将会把用户所输入的全部内容(信用卡数据)发送给攻击者。

用户如何保护自己的安全?

防止信用卡欺诈最保险的方法就是使用离线支付处理器,或者是整合了iFrame的支付结算页面。除此之外,很多第三方支付平添也提供了PCI兼容沙盒来更加安全地处理支付卡信息。

虽然使用整合了iFrame的支付页面是一种更加安全的选项,但这种方法仍然无法抵御基于JavaScript的攻击。

注:我们强烈建议大家定期对自己的电子商务网站进行安全渗透测试以避免任何的安全风险。

事件更新#1

OnePlus引入了CyberSource Magento插件来尝试解决这个问题:

CyberSource通过研究后发现,用户所提交的所有支付数据都直接在客户端浏览器中完成了操作,而且并没有触及到电子商务基础设施。

事件更新#2

OnePlus已经在官网上发布了一份声明,并给受此事件影响的用户发送了通知邮件,以告知用户数据泄露事件的大致情况(总共大约有4万名用户的支付信息被窃取)。

本文分享自微信公众号 - FreeBuf(freebuf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-02-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 域渗透:使用蜜罐检测出Kerberoast攻击

    我们知道,如果攻击者进入域(内网)环境中,攻击影响不敢想象,所以最重要的是快速检测它们。防病毒和EDR解决方案在检测和阻止攻击者方面已经走了很长一段路,但是牛批...

    FB客服
  • 魔兽世界中招:一条命令行就能劫持你的游戏!

    最近出现了一种涉及社工技术的新型游戏攻击骗局,攻击者利用了魔兽世界(World of Warcraft,WoW)游戏插件中一个隐藏的功能。 新型攻击 想象一下这...

    FB客服
  • 2019年度垃圾和钓鱼邮件报告

    2019年,攻击者更喜欢利用重大体育和电影事件盗取用户资产和个人数据。攻击者会利用电视节目资源、电影资源以及体育节目吸引那些想免费观看的人。免费观看几分钟后系统...

    FB客服
  • 利用Prometheus与Grafana对Mysql服务器的性能监控详解

    Prometheus是源于 Google Borgmon的一个开源监控系统,用 Golang开发。被很多人称为下一代监控系统。Grafana是一个开源的图表可视...

    拓荒者
  • 手把手教你使用Python网络爬虫获取菜谱信息

    今天教大家去爬取下厨房的菜谱 ,保存在world文档,方便日后制作自己的小菜谱。

    Python进阶者
  • 业界 | 谷歌发布TensorFlow 1.3.0版本,新加多个分类器、回归器

    机器之心
  • H.264码流结构及QP值提取

    在H.264中,量化参数分3个级别给出:图像参数集(pps)、片头(slice_header)、宏块(mb)。

    walkerfang
  • Hexo博客搭建

    为什么网上这么多教程,我还要在这里写下一篇呢?主要是总结大家的经验和自己的操作过程,一来是方便自己看,二来是给大家提供一些参考。Google一下,你可以找到几乎...

    BessCroft
  • 002.Nginx反向代理案例以及tomcat-redis-session-manager的使用

    CoderJed
  • Golang学习笔记 包和项目构成

    工作目录 先来说说Golang的工作目录,安装好Golang后,需要做的一件事情就是设置工作目录,所有的项目、工具、第三方包会存放到工作目录中。默认情况下工作目...

    乐百川

扫码关注云+社区

领取腾讯云代金券