某不知名博客 某不知名博客
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carsaid

安全界的小学生
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前言

  • 服务器端主题(翻译)

  • 客户端主题(翻译)

    • 客户端主题
    • 跨站脚本(XSS)

    • 跨站请求伪造(CSRF)

      • 跨站请求伪造(CSRF)
      • XSS vs CSRF
        • XSS和CSRF有什么区别?
        • CSRF token可以防范XSS攻击吗?
      • 绕过CSRF token验证
      • 绕过SameSite Cookie限制
      • 绕过基于Referer的CSRF防御
      • 如何防范CSRF漏洞
    • 跨域资源共享(CORS)

    • 点击劫持

    • 基于DOM的漏洞

    • WebSockets

  • 高级主题(翻译)

  • 扩展阅读(翻译)

  • 个人学习笔记

  • 实验室做题记录

  • BurpSuite及官方实验室
  • 客户端主题(翻译)
  • 跨站请求伪造(CSRF)
carsaid
2023-09-27
目录

XSS vs CSRF

翻译

原文:https://portswigger.net/web-security/csrf/xss-vs-csrf

- name: 翻译
  desc: 原文:https://portswigger.net/web-security/csrf/xss-vs-csrf
  bgColor: '#F0DFB1'
  textColor: 'green'
1
2
3
4

# XSS vs CSRF

在本节中,我们将解释 XSS 和 CSRF (opens new window) 之间的差异,并讨论 CSRF 令牌是否有助于防范 XSS 攻击。

# 1XSS和CSRF有什么区别?

跨站脚本(XSS) (opens new window)允许攻击者在受害用户的浏览器中执行任意 JavaScript。

跨站请求伪造(CSRF) (opens new window)允许攻击者诱使受害用户执行他们本不打算执行的操作。

XSS 漏洞的后果通常比 CSRF 漏洞更严重:

  • CSRF 通常仅适用于目标用户能够执行的操作子集。许多应用程序都实现了 CSRF 防御,但偶尔会忽略一两个暴露的操作。相反,成功的 XSS 攻击通常可以诱使用户 执行其能够执行的任何操作,而不管漏洞出现的功能如何。
  • CSRF 可以被描述为 “单向” 漏洞,因为攻击者虽然可以诱使受害者发出 HTTP 请求,但他们无法从该请求中检索响应。相反,XSS 是 “双向” 的,因为攻击者注入的脚本可以发出任意请求、读取响应,并将数据泄露到攻击者所在的外部域。

# 2CSRF token可以防范XSS攻击吗?

一些 XSS 攻击确实可以通过有效的 CSRF 令牌来防范。假设有一个简单的反射型XSS (opens new window)漏洞,可以像这样轻松地利用它:

https://insecure-website.com/status?message=<script>/*+Bad+stuff+here...+*/</script>
1

现在,假设易受攻击的功能包含一个 CSRF 令牌:

https://insecure-website.com/status?csrf-token=CIwNZNlR4XbisJF39I8yWnWX9wX4WFoz&message=<script>/*+Bad+stuff+here...+*/</script>
1

假设服务器正确验证了 CSRF 令牌,并拒绝了没有 有效令牌的请求,则 token 确实可以防止 XSS 漏洞利用。这里的提示就在其名称里:“跨站脚本”,至少在其反射 (opens new window)形式中涉及跨站请求。通过防止攻击者伪造跨站点请求,应用程序就可以防止对 XSS 漏洞的简单利用。

这里有一些重要的警告:

  • 在网站中,一些功能点、以及其他任何可能的位置,如果这些地方不受 CSRF 令牌的保护,同时又存在反射型 XSS 漏洞的话,则该 XSS 可以通过正常方式利用。
  • 如果站点上的某个位置存在可利用的 XSS 漏洞,即使这些操作本身受 CSRF 令牌保护,依然可以利用该漏洞 使受害用户执行任何操作。在这种情况下,攻击者的脚本可以先通过 XSS 请求相关页面,以获取有效的 CSRF 令牌,然后使用该令牌执行受保护的操作。
  • CSRF 令牌不能防止存储型 XSS 漏洞。如果受 CSRF 令牌保护的页面 同时 也是存储型 XSS 漏洞的输出点,则可以通过常规方式利用该 XSS 漏洞,并且 XSS 有效负载将在用户访问该页面时执行。

(((译者加:总结以上三点:

  • 一些功能受 CSRF 令牌保护,其中出现的 XSS 可以被防止。一些功能不受 CSRF 令牌保护,其中出现的 XSS 可以正常利用。
  • 站点上存在可利用的 XSS 漏洞,其上所有的 CSRF 令牌都会失效。
  • CSRF 令牌不能防止存储型 XSS 漏洞。
编辑 (opens new window)
跨站请求伪造(CSRF)
绕过CSRF token验证

← 跨站请求伪造(CSRF) 绕过CSRF token验证→

最近更新
01
API测试笔记
04-30
02
msfvenom
03-29
03
Metasploit
03-29
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Carsaid | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式