• CORS (跨域资源共享)的漏洞


    跨域资源共享(CORS)漏洞详解

    浏览器同源策略

    • 同协议,同端口同域名
    • 不运行别的网站访问该网站资源

    两种跨域方法

    1. JSONP跨域请求

      • 原理 https://www.cnblogs.com/znyu/p/6839617.html
      • jsonp利用script标签具有跨域能力的特点,允许用户通过script的src属性向服务器发送请求,并传递一个函数名作为参数,服务端返回数据时会将这个callback函数作为函数名包裹住从服务端接收的json数据,客户端会按照定义好的方式处理数据。举例如下
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="utf-8">
      <title>JSONP 实例</title>
      </head>
      <body>
      <div id="list"></div>
      <script type="text/javascript">
      function callbackFunction(result, methodName) {
        var html = '<ul>';
        for(var i = 0; i < result.length; i++) {
          html += '<li>' + result[i] + '</li>';
        }
        html += '</ul>';
        document.getElementById('list').innerHTML = html;
      }
      </script>
      <script type="text/javascript" src="http://www.myweb.com/demo/jsonp.php?jsoncallback=callbackFunction"></script>
      </body>
      </html>
      
      • callbackFunction函数名作为参数传递给服务器,服务器返回数据形式为:callbackFunction(["list1","list2"]),显示结果会按照 callbackFunction()函数来处理。
    2. CORS跨域请求

    • jsonp只能发送get请求的包

    CORS的安全问题

    • 返回报文头部的Access-Control-Allow-Origin根据请求报文Origin生成

    • 如果Access-Control-Allow-Origin可控,且Access-Control-Allow-Credentials为true, 那么就可以利用一个可控的网站来窃取一个人的个人隐私信息

    • 就可以请求一些敏感信息,请求用户主页等

    CORS漏洞与CSRF漏洞

    • 相同点:
      • 都要借助第三方网站
      • 都有借助ajax的异步过程
      • 一般都要用户登录
    • 不同点
      • CORS可以读取到受害者的敏感信息
      • CSRF可以完成一些如转账类的敏感caoz
      • 一般有CORS都会有CSRF

    简单的漏洞检测方法

    • 修改一下Origin的头
    • 过滤删选

    常见的漏洞点

    1. 互联网厂商的api接口
    2. 聊天程序的的api接口
    3. app的api(不过有一 些请求需要带有一 些额外的请求头,利用起来比较困难)
    4. 区块链厂商

    ● CORS的规范中还提到了"NULL"源。触发这个源是为了网页跳转或者是来自本地HTML文件。目标应用可能会接收"null"源, 并且这个可能被测试者(或者攻击者)利用,任何网站很容易使用沙盒iframe来获取" null“源

    防御

    1. 不要配置"Access-Control-Allow-Origin" 为通配符“*”,而且更重要的是,要严格效验来自请求数据包中的"Origin" 的值。当收到跨域请求的时候,要检查"Origin" 的值是否是一个可信的源, 还要检查是否为null

    2. 避免使用"Access-Control-Allow-Credentials: true"

    3. 减少Access-Control- Allow-Methods所允许的方法

  • 相关阅读:
    Verilog HDL设计进阶:有限状态机的设计原理及其代码风格_zt
    敏感信号与判断条件冲突引起的错误
    在Quartus II里查看综合器生成的原理图
    RGB与YCbCr颜色空间的互相转换公式
    YCbCr2转换成RGB的verilog解析_zt
    Verilog中函数与任务比较
    Verilog奇偶校验_zt
    8位数据的奇偶校验verilog程序_zt
    4个32位数的比较
    Latex排版工具的使用(一) 分类: Latex 2014-06-14 22:52 448人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/l0nmar/p/12823100.html
Copyright © 2020-2023  润新知