实战之授权站点漏洞挖掘-CORS

1.思路

用户登陆了一个存在跨域的网站,并且这个网站的跨域处理方式为CORS,并且开发人员处理跨域的时候满足cookie跨域和Origin是可控的。那么用户在登陆之后这个网站后,网站便会将一些cookie信息保存在浏览器中。
这个时候我们向该用户发送一个钓鱼网站,用户点开这个钓鱼网站之后,钓鱼网站会向服务器发送一个Ajax异步请求,然后将返回的响应发送给攻击者。

2.利用

(1)检测方法一

检查返回包的 Access-Control-Allow-Origin 字段是否为https://test.com

curl https://www.junsec.com -H "Origin: https://test.com" -I

(2)检测方法二
burpsuite发送请求包,查看返回包
请求包,我们只要关注Origin即可
把Origin设置为b.com时,返回包的Access-Control-Allow-Origin也为b.com,也就是b.com可以跨域获取我的个人博客a.com的资源。从而产生了CORS配置不当的漏洞

3.防御

 不要配置"Access-Control-Allow-Origin" 为通配符 “*” ,而且更为重要的是,要严格效验来自请求数据包中的“Origin”的值。当收到跨域请求的时候,要检查“Origin” 的值是否是一个可信的源,还要检查是否为null。
避免使用 “Access-Control-Allow-Credentials :true” (请求中带cookie)
减少“Access-Control-Allow-Methods”所允许的方法(只需要配置你所需要的即可)

原文地址:https://www.cnblogs.com/-lyr/p/12048884.html