背景:当时我在做公司的网站支付接入,在调试支付宝WAP支付时,发现一些匪夷所思的事情:
1、我想要切换账号时退到需要输入登录信息时,原账号并没有退出,我按一下后退键又回来了;
2、我关闭浏览器也没有退出账号,整个调试过程有差不多一个星期只登录过一次,可以认为登录的账号是无法退出的,除非成功另外一个账号;

由此,我开始怀疑,支付宝WAP支付接口的Cookie有问题,应该是为了方便性设定存了很久时间。

于是我打开用Firebug的Cookie页面一探究竟,我对其中一条名为 ALIPAY_WAP_CASHIER_COOKIE 的Cookie产生的兴趣,就是下图红色箭头所指的那一条,这是一条64个只含大写字母和数字的字符串,有经验的人都会知道,这一般就是哈希算法产生的密文(可能是MD5、SHA等的组合吧);

我抱着试一试的心态,我在隔壁同事的电脑打开了支付宝的WAP支付页,然后把这条Cookie复制到了过去,奇迹果然产生了,我的账号直接在他那里登录成功了,不用输登录密码也不需要手机号码短信认证。就是下图这个样子。

到这里,能看到的隐患就是黑客通过把木马安装在店家的WIFI,用来窃取Cookie信息,把上述这个Cookie拿走,然后慢慢试错,直到把6位密码破解出来(6位密码可以算是弱口令了),如果采集的Cookie比较多,能暴力破解成功还是可以考虑的。

然而还有一种更恐怖的攻击方法,注意到这条Cookie是 64个只含大写字母和数字的字符串,也就基本可以断定这个是哈希算法加密的,而对于那些有丰富经验的黑客来说,简单哈希加密的密文跟明文没有太大区别,不信你可以看看 这个网站,两到三级的哈希加密基本都能被查出来,而这已经是公开的技术了,私密的民间高手技术有多高可以想象了吧。他们只需要用几个账号在支付宝网站生成几个这种Cookie,然后还原出加密方法。他们能做的有两件事:


1、使用大批量账号,可能达到数百万级别,自动生成Cookie然后伪造登录,暴力破解密码。虽然每个账号在三次试错机会中能撞对的概论很小很小,但他们可以延长试错时间,而且基数这么大,成功的机会还是很多的。

2、第二个利用方法虽然没有直接经济效益,但却可以让整个支付宝系统陷入瘫痪。因为支付宝密码输入错误超过3次就会账号被冻结,可以想象数千万甚至上亿的支付宝账号被冻结能给阿里带来多大的冲击吗?这种攻击最受益的应该是阿里的竞争对手们吧。

因为此危害十分大,因此我通过乌云报告给阿里巴巴,然而在经过了一个星期的漫长审核后,它给了这样一个答复

呵呵。。。

然而当我放完国庆长假回来,再次打开支付宝的WAP页,却发现这个Cookie漏洞被修复了,已经没有了几条可能有问题的Cookie!!!

乌云平台里的厂商规则里有这样一条严禁行为:“a)消极处理安全问题包括不负责任的评估安全问题的严重性和后果,忽略后又悄悄修复等”。因此我多次用邮件以及微博的方式同乌云沟通,要求严肃处理此事情,不要伤害小白帽(以后可能要成黑帽子了)的一片心思。然而并没有得到什么有实际意义的答复。

前段时间看的一篇文章《一个iOS漏洞值多少钱?》,里面有这样一句话“大多数白帽子对于苹果这种高冷的行为感到受伤,从高雪峰苦笑的脸上似乎也找到同样的答案。”。同样,我也对阿里巴巴以及乌云的这种行为感到受伤。

既然漏洞已经修复了,乌云不肯公开,我就在博客园里给大家摊开来说吧,仅以抛砖引玉,望各位前辈多多指教。

支付宝Cookie高危漏洞引发的思考的更多相关文章

  1. 一个由"2020年1月7日 京东出现的重大 Bug 漏洞"引起的思考...

    2020年1月7日,京东由于优惠券设置错误,导致大量产品以0元或者超低价成交,并且发货.网传小家电被薅24万件,损失损失金额高达7000多万.很多网友表示收到货了,在网上晒出到货截图.下面为购买截图: ...

  2. Spring之LoadTimeWeaver——一个需求引发的思考---转

    原文地址:http://www.myexception.cn/software-architecture-design/602651.html Spring之LoadTimeWeaver——一个需求引 ...

  3. 由SecureCRT引发的思考和学习

    由SecureCRT引发的思考和学习 http://mp.weixin.qq.com/s?__biz=MzAxOTAzMDEwMA==&mid=2652500597&idx=1& ...

  4. 解决一道leetcode算法题的曲折过程及引发的思考

    写在前面 本题实际解题过程是 从 40秒 --> 24秒 -->1.5秒 --> 715ms --> 320ms --> 48ms --> 36ms --> ...

  5. 黄聪:PHP 防护XSS,SQL,代码执行,文件包含等多种高危漏洞

    版本:v1.1更新时间:2013-05-25更新内容:优化性能功能说明: 可以有效防护XSS,sql注射,代码执行,文件包含等多种高危漏洞. 使用方法: 将waf.php传到要包含的文件的目录 在页面 ...

  6. Struts2 高危漏洞补丁版本为: Struts 2.3.15.1

    Struts2 昨天爆出高危漏洞,黑客利用这个漏洞可以执行任意命令(包括恶意的jsp代码),轻松绕过您的验证系统,登陆您的网站后台,使您的网站后台密码形同虚设!! 目前Struts2官方已经发布了一个 ...

  7. OpenSSL再爆多处高危漏洞

    OpenSSL团队于北京时间6月5号晚8点左右发布了5个安全补丁,这次的更新涉及多处高危漏洞,连接:http://www.openssl.org/news/ 受影响的版本包括: OpenSSL 1.0 ...

  8. php检查漏洞防护补丁-防护XSS,SQL,文件包含等多种高危漏洞

    /** * 通用漏洞防护补丁 * 功能说明:防护XSS,SQL,代码执行,文件包含等多种高危漏洞 * Class CheckRequestServer */ class CheckRequestSer ...

  9. 【思考】由安装zabbix至排障php一系列引发的思考

    [思考]由安装zabbix至排障php一系列引发的思考 linux的知识点林立众多,很有可能你在排查一个故障的时候就得用到另一门技术的知识: 由于linux本身的应用依赖的库和其它环境环环相扣,但又没 ...

随机推荐

  1. 持续集成(CI)初探

    前不久接触了持续集成(Continuous Integration,CI). 一.持续集成是什么 首先说说“集成”的概念.在实际的软件开发中,常常会发生两种情境: 1.几个项目组对同一个系统的不同功能 ...

  2. iCalendar格式中关于RRule的解析和生成

    最近在做一个关于Calendar的项目,相当于Google Calendar或者Outlook中的Calendar.在Calendar的发布和共享中,使用到了iCalendar,是一种日历数据交换的标 ...

  3. MySQL入门(二)

    一 MySQL概述 MySQL是一个很受欢迎的开源数据库,当我从Oracle转来做MySQL的时候,感觉最深刻的一点就是,这家伙居然是Server和Storage分开的!而且更不能忍的是,它竟然是插件 ...

  4. iOS 判断内容是否是中文,两种实现

    用category实现 新建类别文件,代码 .h文件 #import <Foundation/Foundation.h> @interface NSString (Valid) - (BO ...

  5. 用Android Studio 开发Android应用

    目前AndroidStudio已经到了1.2版本了,我用了下,觉得还蛮好的,有些自动生成的资源,它会自动帮你管理.下面开始列一下,我的开发环境搭配.在开始前,你得有个VPN,可者代理.嗯.不然你下不了 ...

  6. Caffe源码解析1:Blob

    转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ 首先看到的是Blob这个类,Blob是作为Caffe中数据流通的 ...

  7. No 'Access-Control-Allow-Origin' header is present on the requested resource.

    今天做一个AJAX案例时,浏览器监控到如下错误: XMLHttpRequest cannot load http://54.169.69.60:8081/process_message. No 'Ac ...

  8. 2016"百度之星" - 初赛(Astar Round2B)

    Problem Description 中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均数作为中位数. 现在有n个数,每个数都是独一无二的,求出每个数在 ...

  9. UNITY3D单词学习 speed和velocity的区别

    在日常用语中,这两个词没有区别,可以通用. 而在物理学里,velocity 是一个矢量(vector quantity)表示起点与终点间直线距离的长度除以所用时间所得的量,并注明方向;而 speed ...

  10. QuickFIX/N 动态存储配置信息

    Acceptor或者Initiator能够为您维护尽可能多的FIX会话,因而FIX会话标识的唯一性非常重要.在QuickFIX/N中,一个FIX会话的唯一标识是由:BeginString(FIX版本号 ...