纯fuzzing,没有神奇的vector
root cause:
QQ邮箱会将邮件里出现的特殊unicode字符转成自家的图片导致xss过滤函数被绕过。
按照正常思路,如果我们对邮件正文进行如下的xss injection:
我们只能得到这样的回报:
但如果结合我们在上面提到的unicode转换问题,来巧妙的构造这样的vector:
最终邮件会变成这样:
被强制转换成图片的unicode字符 祝 由于包含双引号和右肩括号,会在无意间提前闭合style标签,进而将原先的attribute y的值带入到style标签的innerHTML当中,导致XSS。
该poc暂时只能在ie7上复现。虽然poc有点鸡肋,不过这里最根本的问题是这种unicode转成图片的机制会干扰xss过滤函数的正常判断。所以我觉得大可以把这个功能去掉。