邪恶的Flash小游戏
2008年底,某个月黑风高的夜晚,当时中国第一个微博网站饭否(fanfou.com)正值风光,我对这个网站进行了一次授权安全测试,其中有个漏洞引起了我的思考:如何最大化利用,如何发起一次新颖的攻击。
这个漏洞是CSRF(Cross Site Request Forgery,即跨站请求伪造),这个在当时是普遍不能再普遍,渺小不能再渺小的漏洞。我知道利用这个漏洞可以让用户的权限被劫持,然后自动做些用户无法预知的“坏事”。
由于我比较擅长Flash,当年大学期间做过N个Flash小动画,Flash里的ActionScript脚本也是客户端脚本,同样可以做些坏事(不就是发出一些伪造的HTTP请求嘛?对于懂编程的人来说,太简单了),于是我就想到利用Flash为载体,来进行一个静悄悄的攻击:
我找了个开源的Flash小游戏(连连看);
修改了里面的ActionScript代码,植入会发起伪造HTTP请求的代码;
重新生成出这个邪恶的Flash;
发布到自己的网站上;
发了条微博:“终于编写了第一个flash游戏:连连看:),太不容易了- -...欢迎测试:http://xxxx.com/enjoy_flash_game.php?hi=yyyy”;
我的好友看到后,点击链接过去玩,他们会不会觉得还挺好玩的?哈哈;
玩的过程中,Flash里的ActionScript代码执行了,发起了跨站伪造的请求,这个请求会带上这些人的Cookies(关键点),那么这个请求对于饭否来说就是合法的了,于是成功完成了一些邪恶操作:他们都发了篇微博,内容一样,还发了私信给自己的好友;
于是传播开了……
月黑风高嘛,还能传播,这说明夜猫子是很多的:),12:00->12:30半小时的时间,传播的很猛,人群开始紧张了,有人开始骂了,有人开始分析了,有人开始质疑了……
互联网开始沸腾了,我满足了,撤下了这个邪恶的Flash小游戏,写了个安全评估报告给了饭否,然后写出了第一篇Paper(第二天从北京到了阿里巴巴,参加他们的第一届精武门安全会议(也是唯一的一届),那时还是刺当主持人呢,圈子各位名声大的黑客也来了),我的第一次演讲就献给了这个Flash CSRF蠕虫,这是一个内部会议,所以没人知道那时发生了什么,很久之后我才公开。
之后CSRF完成了很多经典的攻击,比如直接打后台权限、搞下Gmail、银行网站等。CSRF的防御开始在那些开源Web应用中得到普及,各大互联网(具备SNS性质的)都开始注意到CSRF带来的恶意攻击,曾经人人网的一个链接就能摧毁一个人的所有日志,一个链接就能搞定一个站长的网站后台,黑客的手上拥有多大的权限……
爱因斯坦是最大的黑客
IC(知道创宇CEO)经常和我们说爱因斯坦的一句名言:“世界不是因为那些破坏者而变得危险,而是因为看着他们破坏而无动于衷的人而变得危险。” www.2cto.com 他说:“爱因斯坦才是最大的黑客!”
我们这些年尝试向Web应用厂商与站长去说明CSRF的危害可以如何的大,但,我们发现他们刚开始都无动于衷……这个在预料之内的(想想别人给我们“盛气凌人”的建议时?),基本都是出了安全问题才开始警惕,所以我们认为“通过无危害安全评估,证明出这个漏洞足够大的危害后,他们才会被触动;如果发生了有危害的黑客事件后,他们会立马行动。”
一份统计
我们的网站体检中心对导致Flash CSRF漏洞的原因之一(网站根目录下是否有crossdomain.xml且这个xml的allow-access-from是否为通配符,通配符表示任意域可以跨域获取本域的隐私数据)进行了统计,统计样本是hao123上那些热门的网站:7709个。
发现,18%的网站有这个crossdomain.xml,这其中有61%存在Flash CSRF漏洞。
注意下:前面说了crossdomain.xml配置不安全会导致任意域可以跨域获取本域的隐私数据,注意是读取,如果要跨域发送POST请求,还得看目标表单是否做了Token防御或验证码防御,是否判断了请求来源(比如只有本域内发起的POST请求才合法)。
防御
这个Flash CSRF的防御很简单:
1. crossdomain.xml的安全配置可以参考,指定好信任的域:
http://weibo.com/crossdomain.xml;
2. 注意:Discuz!安装后网站根目录下的这个文件,默认是不安全的,比如:http://bbs.uc.cn/crossdomain.xml;
答应开源的一个Flash安全测试小工具在这:https://github.com/evilcos/xss.swf,怎么使用自己看了:)
----------分割线----------
我们会持续性的进行安全科普,大家有什么问题可以在微信里给我们留言,我们会认真对待每份留言,并在下次发文时进行必要的解答。如果大家有什么安全八卦也欢迎投稿给我们。
科普改变世界,我们一起努力让这个互联网更好更安全吧!
本文由知道创宇安全研究团队-余弦撰写。