看到安全客的一篇文章,讲 CORS 可能会造成的安全漏洞,提到可以通过 xhr.withCredentials 支持 跨域Cookie 的传递。
然后本鸭就想岔了,跨域请求、还能支持Cookie,那岂不是可以分分钟拿到 httponly 的 Cookie了??
写了个Demo做测试:
但是本鸭还是太年轻啊!!这个地方的 Cookie 仍然他喵的遵守同源策略啊!!
同源策略本来不就是这么规则的吗!!为什么!!为什么要加个没什么卵用的属性来伤本鸭的心!!
大老师说过:当上帝为你关上一扇门,总会再给你把窗户都钉死。
虽然XSS直接取Cookie的方法不通,但通过CSRF的思路读取敏感信息还是可以的。
比如,有些开发为了方便,会这样写(https://www.jianshu.com/p/552daaf2869c):
或者这样写:
header('Access-Control-Allow-Origin:*');
很明显都是存在安全隐患的,可以做到 “点我的链接,我就知道你二大爷的闺女的口红色号” 的效果。
当然可能存在稍微聪明点儿的开发,做了一些限制:
可以绕过:
victim.com.hacker.com
JSONP与CORS漏洞挖掘 https://www.anquanke.com/post/id/97671
跨域资源共享 CORS 详解 http://www.ruanyifeng.com/blog/2016/04/cors.html