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

从业者-垂直权限提升-基于URL的访问控制

# 实验室:绕过基于URL的访问控制

# 题目

此网站在/admin处有一个未经身份验证的管理面板,但前端系统已阻止对该路径的外部访问。但是,后端应用程序构建在某个框架上,该框架支持X-Original-URL标头。

要解决实验室问题,请访问管理面板并删除carlos用户。

实验室-从业者

绕过基于URL的访问控制 >>

- name: 实验室-从业者
  desc: 绕过基于URL的访问控制 >>
  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-url-based-access-control-can-be-circumvented
  bgColor: '#001350'
  textColor: '#4cc1ff'
1
2
3
4
5
6

# 实操

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

  • 尝试利用标头 X-Original-URL 绕过访问控制,然后访问管理面板并删除 carlos 用户。

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

Not Found Image

实验室首页如下,点击右上角的 “Admin panel” 。

Not Found Image

访问被拒绝。

Not Found Image

捕获一个请求数据包,转发到 Repeater 功能模块。

Not Found Image

添加X-Original-URL标头,参数值为/admin。再次发送请求数据包,响应内容发生了变化。

Not Found Image

查看响应内容,出现了管理面板的信息,说明访问成功。

Not Found Image

接着,利用浏览器插件 携带对应的X-Original-URL标头去访问管理面板,然后点击 Delete 删除 carlos 用户。

Not Found Image

删除失败,拒绝访问。

我们只获得了/admin的访问权限,但是没有/admin/delete的访问权限。

Not Found Image

这简单,将标头中的/admin修改为/admin/delete?username=carlos,然后再次访问。

访问虽然成功了,但是程序返回了错误信息 “缺少参数 username ” 。

Not Found Image

一般情况下,应用程序会从 URL 中获取 GET 传参,或从请求主体中获取 POST 传参。

但此时,我们的username参数是放在X-Original-URL标头里面的,而应用程序并没有从该标头中解析传参。

这好办,我们可以在标头中传递路径/admin/delete,然后在 URL 中传递参数?username=carlos,如图。

再次发送数据包,请求成功。

Not Found Image

回到浏览器,刷新网页。

用户删除成功,实验完成。

Not Found Image
编辑 (opens new window)
学徒-垂直权限提升-个人资料控制的用户角色
从业者-垂直权限提升-基于方法的访问控制

← 学徒-垂直权限提升-个人资料控制的用户角色 从业者-垂直权限提升-基于方法的访问控制→

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