早上一如往常,我会登录各类社交网络。当我使用TweetDect登录Twitter后,弹出了一个提示框,显示“XSS on Tweet Deck.”这让我感到很恼火,因为显然这不是正常的欢迎屏幕。
经过一番研究,我发现我收听的其中一个帐号包含了下面的Javascript代码。TweetDeck没有过滤输入导致代码在浏览器中直接执行了。
只要有人把下面的代码通过Tweet发送出去,其他用户通过TweetDeck查看就会中招。从下面的Tweet中可以看出,已经有接近4万用户中招并进行了自动转发,该数字还在不断攀升。
正如你所看到的,这次XSS攻击能够通过data-action:retweet进行自动转发,从而在用户登录TweetDeck并查看该恶意Tweet后会引发连锁反应。这是一次非常严重的安全事件,已经导致了Twitter上爆发大规模蠕虫,TweetDeck官方已经对此做了声明。
这次XSS问题产生的原因是当Tweet中插入了Unicode字符“♥”,Twitter会将其自动转换为心形的图案,并导致HTML过滤器失效。