漏洞概要
关注数(24)
关注此漏洞
漏洞标题:bilibili主站存在存储型XSS漏洞(艰辛的绕过过程/成功传cookie至域外)
漏洞作者: 端端
提交时间:2015-10-15 11:11
修复时间:2015-12-03 17:20
公开时间:2015-12-03 17:20
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:15
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2015-10-15: 细节已通知厂商并且等待厂商处理中
2015-10-19: 厂商已经确认,细节仅向厂商公开
2015-10-29: 细节向核心白帽子及相关领域专家公开
2015-11-08: 细节向普通白帽子公开
2015-11-18: 细节向实习白帽子公开
2015-12-03: 细节向公众公开
简要描述:
bilibili主站存在存储型XSS漏洞(艰辛的绕过过程)
问题其实有点鸡肋,包括有部分关键字过滤、长度的限制以及被强制转换为大写字母等,但终究还是把cookie传到了域外
详细说明:
出现问题的地方是视频下方的标签
任何一个视频最多可以有10个标签显示,且标签开放编辑

测试时发现没有进行转义直接按照html输出到了页面导致标签被浏览器解释

添加标签发现超过20个字符会有提示

但并没有请求发出,所以是前端的限制,直接调用接口(http://www.bilibili.com/api_proxy?app=tag&action=/tags/archive_add)测试确认后端限制60个字符
并且会将所有小写字母替换为大写字母
接口本身虽然也做了一些过滤(比如"<script"之类的)但并不全面

通过测试发现
是有效的(onerror和=之间必须有空格否则接口会403错误)
由于javascript是大小写敏感的,所以直接写入含有小写字母的代码是不可以的
测试发现通过HTML编码可以绕过这一问题
即
变为
(非小写字母没必要编码,节省空间)

但就算这样很明显要想把cookie顺利传到站外,仅仅60个字符是不够的
但不要忘记,我们最多可以添加10个标签,那么在这10个标签中是否可以做到呢
答案是可以的(这不废话吗(-__-)b)
分别执行以下脚本(这里字符串拆分是因为编码后太长了,奇怪的写法都是为了缩短单个标签里的长度)
构造标签内容如下,直接使用接口按顺序添加至视频标签
像这样添加

6个都添加完后(那个点赞的小手颜色有点浅,我觉得在有些显示器上看不太清,就知道红圈里有6个点赞的小手就好了(-__-)b)

漏洞证明:
测试地址
顺便提一句,我只是随便找了一个视频……那个视频不是我传的。
我不知道审核之前会不会被发现,还没被发现的话可以看下效果
会产生一个目标至wooyun.org的请求,其中GET参数是当前在bilibili的cookie
我测试时的截图如下(测试过程均在登录另外的账号下进行,以避免未知的可能存在的影响因素)

视频标签处的惨状

IE11下测试

修复方案:
版权声明:转载请注明来源 端端@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:5
确认时间:2015-10-19 17:19
厂商回复:
~
最新状态:
暂无
漏洞评价:
评论
-
2015-10-15 11:14 |
f4ckbaidu ( 普通白帽子 | Rank:189 漏洞数:25 | 开发真是日了狗了)
-
2015-10-15 11:16 |
小龙 ( 普通白帽子 | Rank:1302 漏洞数:332 | 乌云有着这么一群人,在乌云学技术,去某数...)
-
2015-10-15 11:31 |
染血の雪 ( 普通白帽子 | Rank:193 漏洞数:30 | 击缻)
-
2015-10-15 12:43 |
动后河 ( 实习白帽子 | Rank:57 漏洞数:16 | ☭)
哲学 http://www.bilibili.com/video/av2662415/
-
2015-10-15 13:41 |
围剿 ( 路人 | Rank:17 漏洞数:5 | Evil decimal)
-
2015-10-15 15:16 |
SH0X8001 ( 路人 | Rank:15 漏洞数:3 | 你猜)
-
2015-10-15 16:00 |
Xmyth_Xi2oMin9 ( 普通白帽子 | Rank:400 漏洞数:56 | 人来人往 喜欢却只能欣赏 再见了各位)
-
2015-10-15 16:04 |
聋子 ( 普通白帽子 | Rank:360 漏洞数:69 | 一个聋子)
-
2015-10-15 16:52 |
scanf ( 核心白帽子 | Rank:1317 漏洞数:193 | 。)
-
2015-10-15 18:24 |
xtnnd ( 普通白帽子 | Rank:184 漏洞数:45 | t-safe)
-
2015-10-22 00:11 |
金馆长 ( 路人 | Rank:4 漏洞数:2 | Up)
-
2015-10-27 21:53 |
Security ( 实习白帽子 | Rank:32 漏洞数:12 )
-
2015-11-09 09:32 |
牛肉包子 ( 普通白帽子 | Rank:254 漏洞数:64 )
-
2015-11-09 14:33 |
端端 ( 普通白帽子 | Rank:138 漏洞数:19 | niconiconi~)
-
2015-11-09 17:07 |
牛肉包子 ( 普通白帽子 | Rank:254 漏洞数:64 )
-
2015-11-09 17:57 |
端端 ( 普通白帽子 | Rank:138 漏洞数:19 | niconiconi~)
@牛肉包子 Postman - REST Clienthttps://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm
-
2015-11-09 18:17 |
牛肉包子 ( 普通白帽子 | Rank:254 漏洞数:64 )