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

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

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

Carsaid

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

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

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

  • 服务器端主题(翻译)

  • 客户端主题(翻译)

  • 高级主题(翻译)

  • 扩展阅读(翻译)

  • 个人学习笔记

  • 实验室做题记录

    • 实验室做题记录
    • 服务器端

      • SQL注入

      • 身份验证

      • 目录遍历

      • OS命令注入

      • 业务逻辑漏洞

        • 学徒-客户端控件-过度信任
        • 学徒-非常规输入-高级逻辑漏洞
        • 从业者-非常规输入-低级逻辑缺陷
        • 从业者-非常规输入-异常处理不一致
        • 学徒-有缺陷的假设-安全控制不一致
        • 从业者-有缺陷的假设-复用端点的弱隔离
          • 题目
          • 实操
          • 修复建议
        • 从业者-有缺陷的假设-工作流验证不充分
        • 从业者-有缺陷的假设-有缺陷的状态机制
        • 学徒-特定领域的缺陷-业务规则的执行缺陷
        • 从业者-特定领域的缺陷-无限金钱
        • 从业者-加密预言机-通过预言机绕过身份验证
      • 信息泄露

      • 访问控制

      • 文件上传漏洞

      • SSRF漏洞

      • XXE注入漏洞

    • 客户端

    • 高级主题

  • BurpSuite及官方实验室
  • 实验室做题记录
  • 服务器端
  • 业务逻辑漏洞
clincat
2023-06-27
目录

从业者-有缺陷的假设-复用端点的弱隔离

# 实验室:复用端点的弱隔离

# 题目

此实验室 根据用户的输入对用户的权限级别 做出了有缺陷的假设。因此,你可以利用其帐户管理功能的逻辑,来访问任意用户的帐户。要解决实验室问题,请访问administrator帐户并删除carlos用户。

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

实验室-从业者

复用端点的弱隔离 >>

- name: 实验室-从业者
  desc: 复用端点的弱隔离 >>
  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/logic-flaws/examples/lab-logic-flaws-weak-isolation-on-dual-use-endpoint
  bgColor: '#001350'
  textColor: '#4cc1ff'
1
2
3
4
5
6

# 实操

根据题意,可得实验目标:

  • 该实验室的 用户鉴权 中存在逻辑缺陷,能够访问站点上 任意用户的账户。
  • 利用逻辑缺陷,访问 administrator 用户的账户面板,然后删除 carlos 用户。

点击 “Access the lab” 进入实验室。

Not Found Image

点击 “My account” 进入登录页面。

Not Found Image

输入题目中提供的用户名和密码 并进行登录。

Not Found Image

登录之后,可以看到账户页面信息,并且存在 邮箱更新 和 密码更改 两个功能。

Not Found Image

在网站的/admin路径处 存在管理界面,只允许管理员身份访问。

Not Found Image

回到账户页面,使用密码更改功能,尝试修改 administrator 用户的密码。

Not Found Image

提交表单之后,当前用户名从 wiener 变为了 administrator,同时提示更改失败。

Not Found Image

再试一次,这次启用浏览器代理,然后提交表单。

Not Found Image

这是更改密码的请求数据包,包含五个参数,其中包括用户名、当前密码、新密码、确认新密码。

Not Found Image

尝试修改或删除数据包中的 username 参数,会影响当前显示的用户名。

Not Found Image

那如果删除 current-password(当前密码) 参数呢?

密码更改成功...

Not Found Image

尝试使用新密码登录 administrator 账户。

Not Found Image

登录成功,点击 “Admin panel” 进入管理界面。

Not Found Image

点击 “Delete” 删除 carlos 账户。

Not Found Image

删除成功,实验完成。

Not Found Image

# 修复建议

我想,服务端的漏洞代码应该是这样写的(以 PHP 为例):

if (isset($_POST['current-password'])) {
  # 如果POST中存在current-password参数, 则校验密码是否正确
  ...省略
}

# 更改密码
$username = $_POST['username'];
$password = $_POST['new-password-1'];
change($username, $password)
1
2
3
4
5
6
7
8
9

只要删除 POST 中的 current-password 参数,程序就不会进入 if 代码块,不会判断当前密码是否正确,然后直接执行下方的更改操作。

修复:

if (isset($_POST['current-password'])) {
  # 如果POST中存在current-password参数, 则校验密码是否正确
  ...省略
} else {
  # 如果不存在该参数, 返回错误信息
  return '请输入当前密码!';
}

# 更改密码
...
1
2
3
4
5
6
7
8
9
10
编辑 (opens new window)
学徒-有缺陷的假设-安全控制不一致
从业者-有缺陷的假设-工作流验证不充分

← 学徒-有缺陷的假设-安全控制不一致 从业者-有缺陷的假设-工作流验证不充分→

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