背景:当时我在做公司的网站支付接入,在调试支付宝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漏洞值多少钱?》,里面有这样一句话“大多数白帽子对于苹果这种高冷的行为感到受伤,从高雪峰苦笑的脸上似乎也找到同样的答案。”。同样,我也对阿里巴巴以及乌云的这种行为感到受伤。
既然漏洞已经修复了,乌云不肯公开,我就在博客园里给大家摊开来说吧,仅以抛砖引玉,望各位前辈多多指教。