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

从业者-有缺陷的假设-有缺陷的状态机制

# 实验室:通过有缺陷的状态机制绕过身份验证

# 题目

此实验室 对登录过程中的事件顺序 做出了有缺陷的假设。要解决实验室问题,请利用此缺陷绕过实验室的身份验证,访问管理界面并删除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-authentication-bypass-via-flawed-state-machine
  bgColor: '#001350'
  textColor: '#4cc1ff'
1
2
3
4
5
6

# 实操

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

  • 该实验室的 登录过程 中存在逻辑缺陷,可以绕过身份验证。
  • 利用逻辑缺陷,绕过身份验证 并 访问账户管理面板,然后删除 carlos 用户。

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

Not Found Image

点击 “My account” 转到登录页面。

Not Found Image

输入题目中提供的用户名和密码,登录相应账户。

Not Found Image

提交登录表单之后,并没有直接登录成功,而是让我们选择一个角色。

Not Found Image

有两个角色可供选择,普通用户/作者。

Not Found Image

登录过程产生了三个请求数据包。

第一个数据包,提交登录表单之后发出,携带用户名和密码。如果校验成功,则跳转至角色选择界面。

Not Found Image

第二个数据包,跳转至角色选择界面。

Not Found Image

第三个数据包,选择角色后发出。

Not Found Image

还是第三个数据包,选择的角色名称不同。

Not Found Image

站点的/admin路径中存在管理界面,只有 administrator 身份才可以登录。

Not Found Image

# 角色修改测试

登录之后,在角色选择的界面中,启用浏览器代理 并提交表单。

Not Found Image

捕获请求数据包。

Not Found Image

将 role 参数值修改为 administrator ,然后放行数据包。

Not Found Image

再次访问管理界面,失败。看来修改 role 的方法行不通。

Not Found Image

# 跳过角色选择

既然无法更改角色,那如果不选择角色呢?

后来我试过,如果不进行角色选择 就无法登录,会被强制注销。

# 登录之后,选择角色之前,访问管理界面

既然无法 更改/不选择 角色,那如果在 登录和选择角色 之间的那段时间内访问 /admin 路径会发生什么?

回到登录界面,启用浏览器代理,再次登录。

Not Found Image

这是第一个数据包,放行。

Not Found Image

这是第二个数据包,会跳转到角色选择页面,但我们不想选择。

Not Found Image

将原来的路径 /role-selector 修改为 /admin ,然后放行数据包。

Not Found Image

跳转之后,URL 显示的虽然还是原来的路径,但是内容却是实打实的管理界面,并且没有被拦截。

Not Found Image

在账户页面中,可以看到用户名为 administrator ,并且可以通过 “Admin panel” 进入管理界面。

(好家伙,我登录的 wiener 账户,如果不选择角色,默认即为管理员)

Not Found Image

点击 “Delete” 删除 carlos 账户。

Not Found Image

删除成功,实验完成。

Not Found Image

# 修复建议

身份验证绕过漏洞3 - 默认的管理员身份

  • 当账户访问某个功能点时,如果该账户没有选择身份,则注销其登录状态 / 或默认他是个普通用户,尽量给低权限。

程序:这个用户好奇怪呀,他虽然登录了,但是身份信息是空的。那我默认给你个管理员身份吧,rm -rf随便用 别客气!

编辑 (opens new window)
从业者-有缺陷的假设-工作流验证不充分
学徒-特定领域的缺陷-业务规则的执行缺陷

← 从业者-有缺陷的假设-工作流验证不充分 学徒-特定领域的缺陷-业务规则的执行缺陷→

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