某不知名博客 某不知名博客
首页
  • 《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命令注入

      • 业务逻辑漏洞

      • 信息泄露

      • 访问控制

        • 学徒-垂直权限提升-不受保护的管理功能
        • 学徒-垂直权限提升-URL不可预测
        • 学徒-垂直权限提升-请求参数控制的用户角色
        • 学徒-垂直权限提升-个人资料控制的用户角色
          • 题目
          • 实操
            • 失败的尝试
            • 利用成功
        • 从业者-垂直权限提升-基于URL的访问控制
        • 从业者-垂直权限提升-基于方法的访问控制
        • 学徒-水平权限提升-请求参数控制的用户ID
        • 学徒-水平权限提升-用户ID不可预测
        • 学徒-水平权限提升-重定向数据泄露
        • 学徒-从水平到垂直-密码泄露
        • 学徒-不安全的直接对象引用-静态文件引用
        • 从业者-多步骤过程-其中一步未实施访问控制
        • 从业者-基于Referer的访问控制
      • 文件上传漏洞

      • SSRF漏洞

      • XXE注入漏洞

    • 客户端

    • 高级主题

  • BurpSuite及官方实验室
  • 实验室做题记录
  • 服务器端
  • 访问控制
clincat
2023-07-07
目录

学徒-垂直权限提升-个人资料控制的用户角色

# 实验室:通过用户个人资料修改用户角色

# 题目

此实验室在/admin处有一个管理面板。只有roleid为 2 的登录用户才能访问它。

访问管理面板,并使用它删除用户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/access-control/lab-user-role-can-be-modified-in-user-profile
  bgColor: '#001350'
  textColor: '#39d50c'
1
2
3
4
5
6

# 实操

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

  • 尝试伪造管理员身份的 roleid 参数 ,然后访问管理面板并删除 carlos 用户。

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

Not Found Image

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

Not Found Image

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

Not Found Image

登录成功。

Not Found Image

然后我一股脑,访问/admin?roleid=2、/admin?id=2、/admin?role=2、Cookie: roleid=2啥的,硬是没做出来。

# 失败的尝试

然后审题,“个人资料”?

账户页面唯一的功能点也就只有 “更新邮箱” 了。尝试修改邮箱,并捕获请求数据包。

Not Found Image

响应包返回了 4 个参数,其中一个便是roleid参数。

但是这参数在响应包里面,该咋用啊?

Not Found Image

难道是修改响应包?说试就试。

启用浏览器代理,然后点击 “Update email” 修改邮箱。

Not Found Image

捕获请求数据包之后 “右键 --> Do intercept --> Response to this request” ,然后放行数据包。

Not Found Image

捕获响应数据包,将返回的roleid:1修改为roleid:2,然后放行数据包。

Not Found Image

邮箱更新成功。

Not Found Image

尝试访问管理面板,失败。

Not Found Image

# 利用成功

既然无法修改响应包,那可不可以修改请求包?

原先的请求数据包中只有email一个参数,我们手动添加roleid参数。

# 添加前
{
  "email":"j@k.l"
}

# 添加后
{
  "email":"j@k.l",
  "roleid":1
}
1
2
3
4
5
6
7
8
9
10

应用程序返回了正常信息,并没有报错,说明可以携带两个参数访问。

Not Found Image

将roleid修改为2,再次发送请求数据包。

响应信息中的 roleid 也变成了 2 ,难道修改成功了?

Not Found Image

回到浏览器,刷新网页。

邮箱更新成功,同时右上角出现了 “Admin panel” ,说明此时的 wiener 用户已经具备管理员权限。

点击 “Admin panel” 进入管理面板。

Not Found Image

成功进入管理面板,点击 Delete 删除 carlos 用户。

Not Found Image

删除成功,实验完成。

Not Found Image
编辑 (opens new window)
学徒-垂直权限提升-请求参数控制的用户角色
从业者-垂直权限提升-基于URL的访问控制

← 学徒-垂直权限提升-请求参数控制的用户角色 从业者-垂直权限提升-基于URL的访问控制→

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