挖掘src漏洞
前言
挖src也将近两个月了,写篇博客总结一下.
首先挖洞成果 3中危 2低危, 收入~2k. 真实菜到扣脚,收入连泡面都吃不起.只挖了bilibili src.
另外新业务挖洞难度确实比较低,我甚至挖到了一个毫无难度的越权删除投票. bilibili 开新功能很频繁,我才能挖到这么多.一年半之前挖了一次,啥都没找到.
这次的漏洞挖掘主要是web方向,只用了浏览器,其他工具都没用.
成功挖掘到的漏洞分析
分享审核通过并已修复或无危害的漏洞供参考(非细节)
客户端dos
b站客户端加入了聊天功能,而聊天信息格式比较复杂.凡是复杂的格式都容易出现问题, 通过简单测试,发现通过构造畸形的json分享信息可直接崩溃客户端. 例如
msg[content]={"content":"test""}
奖金 30安全币 1安全币==10人民币
由于复杂格式,这种类型的漏洞应该还存在.事实上我测试时确实用第二种信息打崩溃了,不过忘记当时写的什么了
客户端越权
也是聊天系统的bug,未验证撤回信息者是否是信息发出人,导致可直接撤回他人信息.这个没什么技术含量,只是没人测试过这个功能,让我捡漏了而已.
奖金 20安全币
隐藏页面反射xss
这个xss其实也没什么技术含量,直接arg=payload
. 没有被人发现是因为这个页面存在于登陆记录页面,然后我是坚持阅读js源码的,然后发现在js代码中有一段if 记录状态异常,就有一个按钮打开反馈页面.然后这个反馈页面存在反射xss.
重分说明阅读js源码重要性,没阅读或不碰巧账号异常是不会发现这个页面
奖金 65安全币
越权删除投票
没有任何技术含量,只是没人测试过
奖金 100安全币
前端验证
bilibili 专车号虽然打开要求账号认证,但是实际上是前端认证.通过打断点到验证处修改可直接通过,但是由于内部功能都需要审核被忽略了.
想快速找到你想要的代码,就要熟练使用chrome开发工具了. 在开发功能网络块可发现请求用户信息,所以可以通过断点XHR来定位代码.
方法如图
|
|
打出的日志中会包含js代码位置
未成功找到的思路
window postmessage
window.postmessage
允许跨域发送,是一种新的攻击向量,如果js代码中接受message并用来构建html,会导致xss .b站全站约有7-8处接受postmessage的代码,均未验证发送者. 但是很遗憾的是只有一处真正用传送的数据直接做为html,这处还要求传送的字符串 >0.导致无法利用做为xss
想知道当前页面有没有这个功能?很简单,打开开发工具 sources面板 global listeners
缓存攻击
缓存攻击最典型的就是
配置cdn会缓存.js/.css文件,然后404页面返回码也是200,并包含一些用户信息,攻击者可使受害者打开 /noexist.js的url,此时cdn会认为返回码200,后缀也是js.会将这个404页面缓存起来,然后攻击者可读取这个缓存来获取信息
很遗憾的是b站未符合上述条件,404就是404.并且使用的是现代化前端技术,未返回任何信息在html页面中,难以通过缓存来攻击
切换http方法 CSRF
注意到csrf参数只在post方法生效,试图转换成get方法来绕过csrf限制, 不过还没有找到同时允许get和post方法的api.能直接找到get方法的已经是csrf了(找到了一个还未修复)