CSRF笔记整理

跨站请求伪造

复制代码
##### 类型

* GET:基于url直接修改

<!-- -->

* POST:基于表单修该
复制代码
##### 基本原理

* 用户在同一浏览器登陆了网站A并访问了攻击者在网站B上构造的恶意链接(针对网站A用户信息的一些数据操作)

<!-- -->

* 用户点击恶意链接瞬间会触发csrf攻击;通过网站B后台以该用户的身份向网站A发送恶意请求达到非法操作

<!-- -->

* 利用了cookie保持会话的功能
复制代码
##### 触发条件

* 网站A的某处操作存在CSRF漏洞(只通过cookie验证,没有过多的其他验证:验证码,referer信息,token值等)

<!-- -->

* 用户在同一浏览器中分别打开了网站A和网站B

<!-- -->

* 用户登录了网站A并在登录期间访问了网站B中的恶意链接
复制代码
##### 危害

* 篡改目标网站上的用户数据;

<!-- -->

* 盗取用户隐私数据;

<!-- -->

* 作为其他攻击向量的辅助攻击手法;

<!-- -->

* 传播 CSRF 蠕虫。
复制代码
##### 防御

* 使用POST字段发送数据(可以降低风险)

<!-- -->

* 增加验证码二次验证

<!-- -->

* 检查referer字段是否满足同源策略

<!-- -->

* Anti CSRF Toke(随机指定token)

<!-- -->

* 对操作的一些关键数据进行加密传输

浏览同源策略

复制代码
##### 同源策略

* 协议、端口、域名都相同为同源
复制代码
##### 浏览器同源策略主要用于解决用户在访问网站资源时的安全问题;防止随意跳转到恶意网站造成资产损害

* 在该网站页面中只允许访问同源的资源

<!-- -->

* 阻止非同源资源加载和url跳转
复制代码
##### 不受同源策略限制的资源

* 页面上的链接,比如 a 链接。

<!-- -->

* 重定向。

<!-- -->

* 表单提交。

<!-- -->

* 跨域资源的引入,比如:script, img, link, iframe
复制代码
##### 解决不同源脚本交互问题(即非同源资源加载的问题)

*

  ###### JSONP 解决跨域

  * 在源网站中创建script脚本利用回调函数将数据以JSON格式传递过来

  <!-- -->

  * JSON格式:键值对{key: value} 如{name : "jane"}

  <!-- -->

  * 问题
    * 由于使用回调函数传参所以只能使用GET方法;不安全;

    <!-- -->

    * 由于通过修改脚本代码实现,容易被注入恶意代码

<!-- -->

*

  ###### CORS 解决跨域(跨域资源共享---------Cross-origin resource sharing)

  * 通过在对应的服务器设置白名单的方式来解决跨域资源交互的问题

  <!-- -->

  * AJAX概念
    * AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)

    <!-- -->

    * 通过跟服务器交互实现局部html代码的改动

    <!-- -->

    * XMLHttpRequest是实现Ajax的一种方式

  <!-- -->

  * 流程
    * 浏览器检测到ajax请求为跨域请求时会自动加入Origin字段声明来源(协议+域名+端口号)

    <!-- -->

    * CORS服务端收到该请求时判断Origin字段的url是否在可访问的白名单里

    <!-- -->

    * 如果在白名单里则返回带有Access-Control-Allow-Origin和Access-Control- Allow-Credentials字段的响应包
      * Access-Control-Allow-Origin(ACAO)
        * 白名单中的数据;允许访问的源地址

      <!-- -->

      * Access-Control- Allow-Credentials(ACAC)
        * true:服务器允许上传cookie值

        <!-- -->

        * false:服务器不允许上传cookie值

    <!-- -->

    * 否则返回同源检测异常

  <!-- -->

  *

    ###### CORS漏洞

    * 检测方法
      * 常看响应包是否存在ACAO和ACAC两个字段,且ACAC=true

      <!-- -->

      * 查看ACAO的信息是否为\*或null(存在)

      <!-- -->

      * 尝试修改origin查看ACAO的变化(不断变化则存在)

    <!-- -->

    * 漏洞成因:ACAO配置错误+ACAC=true
      * 使用origin字段充当ACAO

      <!-- -->

      * 对origin字段没有严格匹配
        * 前缀匹配

        <!-- -->

        * 后缀匹配

        <!-- -->

        * url中的点号为转义

        <!-- -->

        * ACAO无限制
相关推荐
腾视科技-AI7 小时前
腾视科技AIBOX双版本重磅发布!本地安全与全球适配,解锁视频智能新可能
大数据·人工智能·科技·安全·大模型·腾视科技·ai算力盒
迪康coolmu7 小时前
企业文档安全防护体系拆解:从备份、防勒索到全链路水印管控
安全
猎头南楼9 小时前
VLA 模型落地端侧:从架构选型到量化部署的工程实践笔记
笔记·架构·大模型
Capricorn198810 小时前
日志级幻觉排障:GPT-6 Astra 迈入 AGI 时代,知芽 Notebook Skill 如何以引用校验与零命中诚实弃权解决长文失忆
论文阅读·人工智能·笔记·gpt·agi
疯狂打码的少年10 小时前
【数据库技术】多值依赖与第四范式(4NF)
数据库·笔记·算法
tq108610 小时前
算法的另一面
笔记
技术不好的崎鸣同学11 小时前
第一章:PEB结构解析与内存定位
windows·安全·系统安全
古养摩登原始人12 小时前
脑机接口合规最新发展:从政策到实践,构建安全可控的技术生态
人工智能·安全
点心的游戏开发世界12 小时前
GDScript 入门笔记(五):函数
笔记·游戏引擎·godot
Multipath71213 小时前
乾元通基于原生UDP时隙感知的多链路聚合方案
网络·网络协议·5g·安全·udp·智能路由器·实时音视频