创建时间:2007-02-12 更新时间:2007-02-12
文章属性:原创
文章提交:root (webmaster_at_xfocus.org)
支付宝控件漏洞——到底是谁在撒谎?
文档维护:tombkeeper[Base64Decode("dG9tYmtlZXBlckB4Zm9jdXMub3Jn")]
文档出处:http://hi.baidu.com/tombkeeper
文档创建:2007年02月09日
最后更改:2007年02月11日
cocoruder去年底向阿里巴巴报了一个淘宝旺旺ActiveX控件溢出的漏洞:
http://www.xfocus.net/articles/200701/901.html
结果阿里巴巴偷偷把漏洞补了,但是不肯发公告。
有了这个教训,前两天cocoruder发现支付宝登陆控件代码执行漏洞的时候就直接公布了:
http://www.xfocus.net/articles/200702/906.html
阿里巴巴的态度还是一样:偷偷把漏洞补上了。有媒体问阿里巴巴是不是有这回事,阿里巴巴完全否定:
http://tech.sina.com.cn/i/2007-02-08/06481375187.shtml
而且派人时刻盯着支付宝社区,凡出现相关主题的不利帖子立即删除,所以现在我们在支付宝社区能看到的都是“形势一片大好”的帖子:
http://club.alipay.com/show_thread-20-1--5930514-.htm
如果事情到此为止也就算了,安全研究界要的也不过就是对自己工作的认可,你想藏着掖着,我们也可以理解。彼此间也没什么深仇大恨,你不承认也就不承认吧。除了腾讯,国内的公司我还没见到几家愿意诚实地发布自己产品安全公告的,我们早就习惯了。
但是事情没有结束。
昨天wlj在donew上发了一篇关于此事的文章,原来的链接是这个:
http://home.donews.com/donews/article/1/110127.html
但是今天早晨我发现这篇文章已经不见了。
而且还针对这篇文章请“天威诚信数字认证中心”搞了一个“专家检测”:
http://club.alipay.com/show_thread-79---5930928-.htm
http://club.alipay.com/yy/club/ps/282.jpg
最无耻的是,可能因为wlj在文章里引用了我说的“就在2月8号,支付宝控件升级了。如果没问题,升级什么呢。”,阿里巴巴来了这么一句:“为了用户更安全,我们加固了支付宝控件。如果您看到升级提示,请按要求操作。”这种行为不但是对全体支付宝用户的愚弄,也是对我们这些信息安全研究者的侮辱。
这件事情阿里巴巴表现最突出的不是欺骗,也不是邪恶,而是愚蠢。认为一推到底就叫作危机公关了,殊不知裤子是遮不住屎的。下面就让我们看看阿里巴巴屁股帘后面藏的东西。
有问题的文件是pta.dll,这个东西属于“ActiveX控件”,只要装了这个东西,你访问的任何网页都可以通过IE浏览器来调用这个控件。也就是说,如果这个控件有问题,你在访问任何网站的时候,都可能被该网站上的恶意网页攻击,在机器上安装木马。这种漏洞并不是什么稀罕东西,最近几年从Flash到微软的Media Player等都出过很多类似的。而这种漏洞也是目前国内木马最为流行的传播方式。
明白了漏洞是怎么回事,再让我们来看看阿里巴巴的登陆控件到底有没有这个漏洞。是不是像“专家检测”的那样:“并未发现上述问题及其它隐患”。
先让我们来访问淘宝的登陆页面:
http://member1.taobao.com/member/login.jhtml
如果你以前没有安装过支付宝的控件,这时候就会看到一个安装的提示。在网页上点击右键,察看源代码,在其中搜索“aliedit”,你会看到类似这样的两行:
https://img.alipay.com/download/1009/aliedit.cab
http://img.alipay.com/download/1009/aliedit.exe
这两个都是支付宝的控件,前者是可以通过IE提示你安装的,后者是你可以手工下载安装的。控件的当前版本是1.0.0.9。
阿里巴巴在技术方面的愚蠢之处就是在事发后,仍然把各个版本的登陆控件保留在服务器上。所以我们可以通过访问下面这些链接取得所有版本的控件:
http://img.alipay.com/download/1006/aliedit.cab
http://img.alipay.com/download/1007/aliedit.cab
http://img.alipay.com/download/1008/aliedit.cab
http://img.alipay.com/download/1009/aliedit.cab
http://img.alipay.com/download/1006/aliedit.exe
http://img.alipay.com/download/1007/aliedit.exe
http://img.alipay.com/download/1008/aliedit.exe
http://img.alipay.com/download/1009/aliedit.exe
当然,本文发布后,阿里巴巴十有八九会把1.0.0.9之前的版本删除。不过我相信,在他们删除之前,已经有足够多的人看到了这篇文章,下载了这些文件。并且我已经把存在漏洞的1.0.0.7版文件传到了这里:
http://tombkeeper.googlepages.com/1.0.0.7_aliedit.cab
http://tombkeeper.googlepages.com/1.0.0.7_aliedit.exe
(相信阿里巴巴的活动能力不至于能从googlepages上删除文件,所以本文涉及的所有文件一律放在googlepages上。)
那么上面这些文件会不会是我伪造的,用来陷害阿里巴巴的呢?ActiveX控件的一大特点是必须有数字签名来保证其身份。请大家在aliedit.cab或者aliedit.exe上单击右键,察看其属性。在属性窗口里有“数字签名”这一栏。任何人通过察看这里都可以确认该程序是由阿里巴巴发布的。
http://tombkeeper.googlepages.com/alipay_sign_01.jpg
http://tombkeeper.googlepages.com/alipay_sign_02.jpg
http://tombkeeper.googlepages.com/alipay_sign_03.jpg
如果你不太懂为什么数字签名可以证明这个程序的确是由阿里巴巴发布的,请致电专业的数字认证公司“天威诚信数字认证中心”(010-84603568 转 708),问问他们,数字签名是不是能够认定这一点。
没考虑数字签名这个茬,这是阿里巴巴在这件事情上第三个愚蠢之处。
存在漏洞的pta.dll是从1.0.0.7版开始有的。这个1.0.0.7版的数字签名时间是2006年2月22日 23:00:31,也就是说差不多也就在这个时间之后不久发布。1.0.0.8版控件的签名时间是2007年2月7日 22:30:09,在这个版本中,pta.dll被修复。从2006年2月到2007年2月,这个危险在我们的计算机上差不多存在了一年。
那么这个1.0.0.7版的控件到底有没有安全漏洞呢?现在大家都升级了控件,怎么测试呢?
很简单,从这个地址下载1.0.0.7版控件,然后关闭IE等浏览器安装控件:
http://img.alipay.com/download/1007/aliedit.exe
如果上面这个地址已经下载不到东西,那就是阿里巴巴已经动手删除了,大家可以从我这里下载:
http://tombkeeper.googlepages.com/1.0.0.7_aliedit.exe
下载后请察看一下数字签名,确认是“ZHEJIANG ZHIFUBAO NETWORK TECHNOLOGY CO., LTD.”发布的,而不是我造的假。
安装时会提示“目标文件已存在,而且比源文件要新”,点击“是”确认安装。如果提示要重新启动,就重新启动,否则旧版本控件不会生效。
然后访问下面这个链接,这是cocoruder提供的一个测试代码,如果执行成功,会运行系统的“计算器”;即使不成功,也会让IE出错崩溃:
http://tombkeeper.googlepages.com/alipay_1007_calc_poc.htm
现在任何人都可以确定无疑地知道,在2007年2月8日之前,阿里巴巴的支付宝控件的确是有极其严重的漏洞的。
事情到此结束了么?还没有。
我昨晚抽空看了一下修复了漏洞之后的1.0.0.9版本的pta.dll,发现这个文件仍然有问题,虽不至于导致入侵系统,但还是可以导致IE浏览器崩溃。
无论你的支付宝控件是什么版本,即使是最新的,访问下面这个URL都会导致IE崩溃:
htt
p://tombkeeper.googlepages.com/alipay_1009_crash_poc.htm
根据操作系统和IE版本的不同,你可能会看到类似这些的窗口:
http://tombkeeper.googlepages.com/alipay_crash_01.jpg
http://tombkeeper.googlepages.com/alipay_crash_02.jpg
那么作为普通用户,如何保护自己呢?
很简单,运行系统的“命令提示符”,在其中输入:
regsvr32 /u %SystemRoot%\System32\aliedit\pta.dll
这样就解除了pta.dll在系统中的注册,任何网页都无法调用它。大家再访问上面的链接就不会崩溃了。