js 可以跨域得到 cookie?QQ 邮箱被一封邮件黑了?

手机丢失,黑手机处理者去apple官网重置密码,然后重置链接发送到了失主绑定的qq邮箱,然后骗子给该邮箱发送一封邮件,是一张图片. [图片] 点击这个…
关注者
1,459
被浏览
96,531

31 个回答

好问题。

首先警告一下所有人,题述里这个链接,url789这个域名,不要打开,不要打开,不要打开,好奇害死人,手贱丢隐私。

研究了一下,腾讯的山寨程序员没有做参数检查,把参数直接拼到 HTML 里去,造成脚本注入漏洞,然后被攻击者找到了加以利用。

复现的方法很简单了。

原攻击方式用的是 POST 提交,我这里用 GET 也能重现。

我构造一个url,注入一个脚本

alert(document.cookie)

url 如下

http://m.exmail.qq.com/cgi-bin/login?uin=aaaa&domain=bbbb%26quot%3B%3Breturn+false%3B%26quot%3B%26lt%3B%2Fscript%26gt%3B%26lt%3Bscript%26gt%3Balert(document.cookie)%26lt%3B%2Fscript%26gt%3B&aliastype=other


你只要打开了,会出现一个 alert 框,内容是你在这个域名下的 cookie。

那么攻击者不 alert,攻击者把你的 cookie 发送到他的服务器上,你的隐私就没了,他可以随便进入你的 QQ 邮箱。

奥妙呢就在这里了。


腾讯的程序员,赶紧的吧,修复漏洞,然后给用户道歉去吧。

=============

补充一下攻击者注入的脚本


非常地有想法,当前 frame 地址、顶层 frame 地址、cookie,还用了 try catch 抓异常,不错不错,就是用 escape() 略显山寨,他这里应该用 encodeURIComponent() 。

==============

更新,腾讯还不只这一个 XSS 漏洞,有其他答主发出来了另一个洞,也被腾讯忽略了。

我估计也只能通过把事情闹大的方式才能引起腾讯注意了。

QQ邮箱连接存在xss可直接获取用户敏感信息


==============

拖了一个月终于给修了,看来事儿还是得闹大才能解决。

补充说明:漏洞是恶性bug,bug 不一定是漏洞,bug 可以慢慢修,排优先级,漏洞要第一时间响应。对于已经存在很久,并且已经被恶意利用的漏洞,我们公开讨论它可以引起关注,有利于问题的解决。

这个是xss,不是跨域。url参数直接原文在html里面展示了,导致页面代码可以被传入参数修改。

虽然是做后台开发,但是我几年前刚入职时也写过一段时间页面。我很羞愧地告诉大家,xss、csrf之类的漏洞,我写出过不下20回。大部分漏洞都被安全平台扫出来了,极少部分发到外网,被发现,留下了心理阴影。就算今天来写,我也胆战心惊,怕一不小心就会写出漏洞。

为什么?因为腾讯的生产工具太落后了。

腾讯的网站,基本都是cgi裸写出来的。腾讯网站上的每个页面,其实都是用printf,cout,或out.print输出来的,模板引擎之类有性能开销的东西,腾讯基本是不考虑使用的。那么多页面,都是手工拼出来,还要记得每个参数都转义一下,难免有一两个参数漏掉了,于是xss漏洞就出来了。

一些人认为腾讯作为大厂,技术还不至于这么烂吧?其实腾讯崇尚的技术,都是高性能、高并发、大数据、分布式之类的。你要是写了个模板引擎,说可以提升开发效率,避免xss漏洞,去面试T3估计是难以通过的。

由于分工明确,搞安全的专门搞安全,写代码的专门写代码,导致很多普通程序员其实是没有什么安全知识的。而写页面这种低端工作,就是专门交给应届生等新手来写的。新手没有被xss搞过,觉得写页面毫无难度,于是漏洞自然就更多了。

由于新手写出的xss漏洞实在太多,老手写出的xss也很多,于是安全平台部搞了个安全扫描网站。但是扫描它也得知道页面有哪些参数,于是安全平台部搞了一个客户端安装在各开发同学电脑上,收集访问过的url,用于安全扫描。但是这种泄漏个人隐私的事情,显然是得不到程序员的支持的。于是没有推广成功。安全平台部又想从开发网路由器上去捞日志,但是这个路由器是属于另一个部门的,而且不管是领导还是员工,大家都有访问敏感网站的需求,于是注定了这条路也不能成功。安全平台部又想从各idc机器上去捞访问日志,但是各机器也是属于不同部门的,注定也很难成功。后来安全平台部发现,漏洞反正都是你们自己的事,于是他也不管了,让你自己主动去扫描。

我当年的部门还是比较注意安全的,在发布时主动提交url到安全平台进行扫描。安全平台从这个url出发,使用爬虫技术,把所有的url获取出来,都扫一下。然而也难免漏网之鱼,那些爬不到的,或是爬到的参数不足的,漏洞是不一定能扫出来的。

所以腾讯的网站,漏洞也会有很多的,而且你反馈漏洞给腾讯安全,他们还不一定能立即找到对应的负责人,所以修复漏洞也是要很久的。

===================================================================

个人观点,不代表任何公司立场。