@36氪 团队在使用新浪微博的iPhone版客户端的时候,无意中发现了一个重大安全漏洞,可能导致微博账户被盗用的严重问题。
用手机客户版浏览微博有一个额外的功能(如下图红框所示),可以把用邮件把一条微博分享给别人:
选择“邮件分享给好友”之后会进入iPhone的邮件客户端,微博的内容会作为邮件的正文,所有相关的链接都会被保存。问题就出在带@的指向用户的链接上。比如下图所示邮件中
@36氪的链接地址:
http://t.sina.cn/n/36%E6%B0%AA?gsid=3_58ac12a3f465799befd32266405691ecafb8ada0
任何获取这条链接的用户,在点击之后都可以进入下面第二张图片所示的页面,大家可以尝试一下(桌面浏览器也可以,但因为是移动版地址,显示的将是移动版界面)。这个页面实际上已经跟用邮件转发微博的账户绑在了一起,也就是说如果继续点击“我的首页”,看到的是我们为了测试这个缺陷申请的微博账户
@微博捉虫手登陆后的主界面。之后用户可以做除了修改密码之外的任何事情:发布新的微博,修改用户名,修改其他用户设置和信息等。某种程度上这相当于微博账户被盗。
Update1:因为@36氪的微博账户被封号,以上链接无法继续访问,大家可以尝试李开复老师的微博链接:
http://t.sina.cn/n/%E6%9D%8E%E5%BC%80%E5%A4%8D?gsid=3_58ac12a3f465799befd32266405691ecafb8ada0
Update2:目前@36氪的微博账户已经解封,但是用来测试的
@微博捉虫手账户又被封禁,所以以上的链接都不可用了。但是该漏洞一直存在,有兴趣的话可以用手机客户端转发带@的微博到自己的邮箱验证一下,@36氪提醒您请注意安全。
很明显t.sina.cn是新浪用于移动网页版和移动客户端版微博的子域名,有别于桌面版的t.sina.com.cn。以上的演示说明移动版微博在链接提供gsid的情况下,并不使用cookie对用户进行身份确认(虽然cookie的安全性也很低,在无加密的Wifi环境里任何人用Firefox的
Firesheep插件都可以轻松获取其他人不加密连接的cookie)。打个比方说,如果李开复老师用手机客户端的邮件分享功能发送一则微博给我,那么我就能获取他的gsid,并利用这个安全漏洞向400多万开老师的粉丝发布任何我想发布的内容,这是很可怕的一件事情。
在这里,
@36氪提醒新浪微博用户,在这个安全漏洞被修复之前,请不要再使用手机客户端的“邮件分享”功能。