通过一糯米xss(可绕过chrome)可以用两种方式拿到httponly的BDUSS,大部分非IE用户点击后,只要百度账号是登陆状态,攻击者就可以进入用户的百度账号,网盘资料可能会被泄露
漏洞1、糯米的一个post的xss
这是一个发表评价的请求,直接看利用代码
post返回的json结果中可以注入html,contenttype用的是html类型,所以可以形成xss。虽然结果做了些json的转义,但是还是可以利用,而且由于返回的结构的问题,可以绕过chrome
而且不管团购产品的id填什么,评价哪怕没成功,post的返回结果都会把提交的数据以json的格式给返回后来,返回结果类似如下
里面形成了xss,只要外面包一个iframe,就可以把window.name传递过来执行js,而且这个场景的xss可以绕过chrome的xss filter
漏洞2、读取在cookie中是httponly属性的BDUSS值的方法一
百度的认证cookie是BDUUSS,而且是httponly的,所以XSS直接读cookie的方式获取不到。
只要cookie中设置了正确的BDUSS就可以登陆成功,看看上面的post的返回值里面,竟然包含了用户的BDUSS,那就很简单了,直接在xss中ajax读就可以了
漏洞3、读取在cookie中是httponly属性的BDUSS值的方法二
百度登陆用户在访问糯米时,会自动登陆,统一登陆的方式是
先ajax请求
然后此请求会返回302跳转并带上BDUSS
这种场景下用sh.nuomi.com域下的xss就可以读到上面的返回的302跳转的内容,代码如下:
漏洞4、csrf让用户自动登陆糯米的漏洞
当百度用户还没有登陆糯米的时候,攻击者可以这样让用户自动登陆糯米
可以csrf让用户访问
貌似referer上做了一点限制,直接访问不可以,但只要iframe了此请求的父页面的url中包含baidu.com这样的字符,就可以登陆成功
综上所述,我构造一个攻击页面,在微博和贴吧中到处发,登陆状态的百度的非IE用户点击后,大多可以中招
而且BDUSS差不多是全百度通用,对云盘短信、钱包这些重点业务没有做区分。所以用户的隐私和金融安全受到了极大威胁