burp靶场--访问控制【越权】

【Burp系列】超全越权漏洞实验总结

https://portswigger.net/web-security/access-control/lab-unprotected-admin-functionality

1. 访问控制【越权】

https://portswigger.net/web-security/access-control#what-is-access-control

### 什么是访问控制:
访问控制是对谁或什么被授权执行操作或访问资源的限制的应用。在 Web 应用程序的上下文中,访问控制依赖于身份验证和会话管理:
身份验证可确认用户的真实身份。
会话管理可识别同一用户正在发出哪些后续 HTTP 请求。
访问控制确定是否允许用户执行他们尝试执行的操作。
损坏的访问控制很常见,并且通常会带来严重的安全漏洞。访问控制的设计和管理是一个复杂且动态的问题,它将业务、组织和法律约束应用于技术实现。访问控制设计决策必须由人类做出,因此出错的可能性很高。


实验1:不受保护的管理功能

### 实验要求:
该实验室有一个不受保护的管理面板。
通过删除用户来解决实验室问题carlos。

### 实验操作:
robots.txt通过附加实验室 URL 转到实验室并查看/robots.txt。请注意,该Disallow行公开了管理面板的路径。
在 URL 栏中,替换/robots.txt为/administrator-panel以加载管理面板。
删除carlos。

在这里插入图片描述
管理面板不受凭据保护:
在这里插入图片描述
在这里插入图片描述

实验2:未受保护的管理功能和不可预测的 URL

### 实验要求:
该实验室有一个不受保护的管理面板。它位于不可预测的位置,但该位置已在应用程序中的某处公开。
通过访问管理面板并使用它删除用户来解决本实验carlos。
### 实验操作:
使用 Burp Suite 或 Web 浏览器的开发人员工具查看实验室主页的源代码。
请注意,它包含一些公开管理面板 URL 的 JavaScript。
加载管理面板并删除carlos.

在这里插入图片描述
在这里插入图片描述

实验3:通过请求参数控制用户角色【cookie参数伪造垂直越权】

### 实验要求:
该实验室有一个管理面板/admin,位于 ,它使用可伪造的 cookie 来识别管理员。
通过访问管理面板并使用它删除用户来解决本实验carlos。
您可以使用以下凭据登录您自己的帐户:wiener:peter

### 实验操作:
浏览/admin并发现您无法访问管理面板。
浏览至登录页面。
在 Burp Proxy 中,打开拦截并启用响应拦截。
完成并提交登录页面,并在 Burp 中转发生成的请求。
观察响应设置了 cookie Admin=false。将其更改为Admin=true.
加载管理面板并删除carlos.

某些应用程序在登录时确定用户的访问权限或角色,然后将此信息存储在用户可控制的位置,如隐藏字段、cookie或预设查询字符串参数。应用程序根据提交的值做出后续访问控制决策

例如:
https://insecure-website.com/login/home.jsp?admin=true
https://insecure-website.com/login/home.jsp?role=1
这种方法从根本上讲是不安全的,因为用户可以简单地修改值并获得对他们未被授权的功能(如管理功能)的访问权限
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验4:用户角色可以在用户配置文件中修改【垂直越权】

### 实验要求:
该实验室的管理面板位于/admin。只有 a 为 2 的登录用户才能访问它roleid。
通过访问管理面板并使用它删除用户来解决本实验carlos。
您可以使用以下凭据登录您自己的帐户:wiener:peter

### 实验操作:
使用提供的凭据登录并访问您的帐户页面。
使用提供的功能更新与您的帐户关联的电子邮件地址。
请注意,响应包含您的角色 ID。
将电子邮件提交请求发送到Burp Repeater,添加"roleid":2到请求正文中的JSON中,然后重新发送。
请注意,响应显示 your roleid已更改为 2。
浏览/admin并删除carlos.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验5:由请求参数控制的用户ID【水平越权】

### 实验要求:
该实验室在用户帐户页面上存在水平提权漏洞。
要解决该实验,请获取用户的 API 密钥carlos并将其作为解决方案提交。
您可以使用以下凭据登录您自己的帐户:wiener:peter

### 实验操作:
使用提供的凭据登录并转到您的帐户页面。
请注意,URL 的“id”参数中包含您的用户名。
将请求发送到 Burp Repeater。
将“id”参数更改为carlos。
检索并提交 的 API 密钥carlos。

在这里插入图片描述
在这里插入图片描述

实验6:用户ID由请求参数控制,用户ID不可预测

### 实验要求:
该实验室在用户帐户页面上存在水平提权漏洞,但使用 GUID 来识别用户。
要解决该实验室问题,请找到 的 GUID carlos,然后提交他的 API 密钥作为解决方案。
您可以使用以下凭据登录您自己的帐户:wiener:peter

### 实验操作:
查找 的博客文章carlos。
单击carlos并观察 URL 包含他的用户 ID。记下此 ID。
使用提供的凭据登录并访问您的帐户页面。
将“id”参数更改为保存的用户 ID。
检索并提交 API 密钥。

在这里插入图片描述
记录下用户id:
userId=61e346b1-dc08-4a1f-b0e5-d59a126ecb0a
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验7:请求参数控制用户ID,重定向时数据泄露

### 实验要求:
该实验室包含一个访问控制漏洞,其中敏感信息在重定向响应正文中泄露。
要解决该实验,请获取用户的 API 密钥carlos并将其作为解决方案提交。
您可以使用以下凭据登录您自己的帐户:wiener:peter

### 实验操作:
使用提供的凭据登录并访问您的帐户页面。
将请求发送到 Burp Repeater。
将“id”参数更改为carlos。
请注意,虽然响应现在将您重定向到主页,但它的正文包含属于 的 API 密钥carlos。
提交 API 密钥。

在这里插入图片描述
在这里插入图片描述

实验8:用户ID由请求参数控制,密码泄露

### 实验要求:
该实验室的用户帐户页面包含当前用户的现有密码,并预先填充了屏蔽输入。
要解决该实验,请检索管理员的密码,然后使用它来删除用户carlos。
您可以使用以下凭据登录您自己的帐户:wiener:peter

### 实验操作:
使用提供的凭据登录并访问用户帐户页面。
将 URL 中的“id”参数更改为administrator。
查看 Burp 中的响应并观察到它包含管理员的密码。
登录管理员帐户并删除carlos。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验9:不安全的直接对象引用

### 实验要求:
本实验将用户聊天日志直接存储在服务器的文件系统上,并使用静态 URL 检索它们。
通过找到用户的密码carlos并登录其帐户来解决实验室问题。

###
选择实时聊天选项卡。
发送消息,然后选择查看记录。
查看 URL 并观察记录是文本文件,其文件名包含递增的数字。
将文件名更改为1.txt并查看文本。注意聊天记录中的密码。
返回实验室主页面并使用窃取的凭据登录。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用凭据登陆:carlos:z608sgq5p1rcy2k6x94v
在这里插入图片描述

实验10:基于 URL 的访问控制可以被规避

### 实验要求:
该网站在 处有一个未经身份验证的管理面板/admin,但前端系统已配置为阻止对该路径的外部访问。然而,后端应用程序是建立在支持X-Original-URL标头的框架之上的。
要解决该实验,请访问管理面板并删除用户carlos

### 使用操作:
尝试加载/admin并观察是否被阻止。请注意,响应非常简单,表明它可能来自前端系统。
将请求发送到 Burp Repeater。将请求行中的 URL 更改为/并添加 HTTP 标头X-Original-URL: /invalid。观察应用程序返回“未找到”响应。这表明后端系统正在处理来自X-Original-URL标头的 URL。
将标头的值更改X-Original-URL为/admin。请注意,您现在可以访问管理页面。
要删除carlos,请添加?username=carlos到实际查询字符串中,并将X-Original-URL路径更改为/admin/delete。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

实验11:基于方法的访问控制可以被规避

### 实验要求:
本实验部分基于 HTTP 请求方法实现访问控制。您可以通过使用凭据登录来熟悉管理面板administrator:admin。
要解决该实验室问题,请使用凭据登录wiener:peter并利用有缺陷的访问控制来提升自己成为管理员。

### 实验操作:
使用管理员凭据登录。
浏览到管理面板,升级carlos并将 HTTP 请求发送到 Burp Repeater。
打开私人/隐身浏览器窗口,然后使用非管理员凭据登录。
尝试通过将非管理员用户的会话 cookie 复制到现有的 Burp Repeater 请求中来重新升级carlos该用户,并观察响应显示“未经授权”。
将方法从 更改为POST并POSTX观察到响应更改为“缺少参数”。
GET通过右键单击并选择“更改请求方法”将 请求转换为使用该方法。
将用户名参数更改为您的用户名并重新发送请求

登陆管理员,获得提升权限的api接口:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将wiener登陆后的请求包发送到repeater,使用管理员提升用户权限的接口,使用username=wiener&action=upgrade做完
post参数发送请求,此时cookie的身份是wiener.
在这里插入图片描述
在这里插入图片描述
使用get方法绕过,提升权限:
在这里插入图片描述
在这里插入图片描述

实验12:多步骤流程,一步无访问控制

### 实验要求:
该实验室的管理面板包含有缺陷的用于更改用户角色的多步骤流程。您可以通过使用凭据登录来熟悉管理面板administrator:admin。
要解决该实验室问题,请使用凭据登录wiener:peter并利用有缺陷的访问控制来提升自己成为管理员。

### 实验操作:
使用管理员凭据登录。
浏览到管理面板,升级carlos并将确认 HTTP 请求发送到 Burp Repeater。
打开私人/隐身浏览器窗口,然后使用非管理员凭据登录。
将非管理员用户的会话 cookie 复制到现有的 Repeater 请求中,将用户名更改为您的用户名,然后重播。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
获得提升权限功能的api接口:
在这里插入图片描述
在这里插入图片描述
将提权的流程1数据包发送到repeater,修改cookie为wiener,username=wiener 发现提权失败:
在这里插入图片描述
将提升权限第二个步骤的数据包发到repeater,替换cookie为wiener,302跟随重定向成功提升wiener的权限。
在这里插入图片描述

实验13:基于Referer的访问控制

### 实验要求:
本实验根据 Referer 标头控制对某些管理功能的访问。您可以通过使用凭据登录来熟悉管理面板administrator:admin。
要解决该实验室问题,请使用凭据登录wiener:peter并利用有缺陷的访问控制来提升自己成为管理员。

### 实验操作:
使用管理员凭据登录。
浏览到管理面板,升级carlos并将 HTTP 请求发送到 Burp Repeater。
打开私人/隐身浏览器窗口,然后使用非管理员凭据登录。
浏览/admin-roles?username=carlos&action=upgrade并观察到,由于缺少 Referer 标头,该请求被视为未经授权。
将非管理员用户的会话 cookie 复制到现有的 Burp Repeater 请求中,将用户名更改为您的用户名,然后重播。

在这里插入图片描述
google浏览器:crtl+shift+n:打开一个无痕浏览器:wiener:peter登陆
在这里插入图片描述
在这里插入图片描述
注意:refer参数:这说明鉴定权限的参数不是cookie,而是refer值:是否为:target_site/admin
在这里插入图片描述
在这里插入图片描述

参考:

### portswigger官方访问控制【越权】:
https://portswigger.net/web-security/access-control/lab-unprotected-admin-functionality
### 【Burp系列】超全越权漏洞实验总结
https://mp.weixin.qq.com/s/hlmC6sMpwT5G5qSV8-4y5A
### owasp
https://owasp.org/www-project-web-security-testing-guide/stable/
### PayloadsAllTheThings
https://github.com/swisskyrepo/PayloadsAllTheThings

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/339013.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

php基础学习之常量

php常量的基本概念 常量是在程序运行中的一种不可改变的量(数据),常量一旦定义,通常不可改变(用户级别)。 php常量的定义形式 使用define函数:define("常量名字", 常量值);使用cons…

Mac NTFS 磁盘读写工具选哪个好?Tuxera 还是 Paragon?

在使用 Mac 电脑时,我们经常需要读写 NTFS 格式的硬盘或 U 盘。然而,由于 Mac 系统不支持 NTFS 格式的读写,因此我们需要借助第三方工具来实现这个功能。而在市场上,Tuxera 和 Paragon 是两款备受推崇的 Mac NTFS 磁盘读写工具。那…

GSP专版软件系统(医疗器械进销存)

产品概述 软件完全符合药监局GSP认证要求,可订制其它平台的数据对接; 业务流程清晰,操作简单合理,软件速度非常快; 完善的序列号(UDI)管理,并与整个系统融合在一起; 财务账和业务账完美结合; 可自定义的界面、布局管理;灵活的打印样式设计; 可…

有关软件测试的,任何时间都可以,软件测试主要服务项目:测试用例 报告 计划

有关软件测试的,任何时间都可以,软件测试主要服务项目: 1. 测试用例 2. 测试报告 3. 测试计划 4. 白盒测试 5. 黑盒测试 6. 接口测试 7.自动…

Vuex的基础使用

在使用之前要先了解Vuex的组成结构,跟对应的使用关系。 在上图的结构图中可以看到四个组成部分,首先是Components(组件)、Actions(行动)、Mutations(变化)、state(状态/数…

Mysql运维篇(三) MySQL数据库分库分表方案

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人,如有侵权请留言,我及时删除。 一、前言 关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数…

【MySQL进阶】SQL优化

文章目录 SQL 优化主键优化数据组织方式页分裂页合并主键设计原则 insert优化order by优化group by优化limit优化count优化 SQL 优化 主键优化 数据组织方式 在InnoDB存储引擎中,表数据都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表 在In…

【5G 接口协议】N2接口协议NGAP(NG Application Protocol)介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

PIG框架学习3——Redisson 实现业务接口幂等

零、前言 ​ 业务接口幂等问题是在开发中遇到的,如果对业务接口代码不进行幂等控制,并且在前端没有对请求进行限制的情况下,可能会出现多次对接口调用,导致错误异常的发生。就上述情况,对PIGX自带的业务接口幂等实现进…

无法找到mfc100.dll的解决方法分享,如何快速修复mfc100.dll文件

在日常使用电脑时,我们可能会碰到一些系统错误提示,比如“无法找到mfc100.dll”的信息。这种错误通常会阻碍代码的执行或某些应用程序的启动。为了帮助您解决这一问题,本文将深入探讨其成因,并提供几种不同的mfc100.dll解决方案。…

lv14 内核定时器 11

一、时钟中断 硬件有一个时钟装置,该装置每隔一定时间发出一个时钟中断(称为一次时钟嘀嗒-tick),对应的中断处理程序就将全局变量jiffies_64加1 jiffies_64 是一个全局64位整型, jiffies全局变量为其低32位的全局变量&#xff0…

三.Winform使用Webview2加载本地HTML页面

Winform使用Webview2加载本地HTML页面 往期目录创建Demo2界面创建HTML页面在Demo2窗体上添加WebView2和按钮加载HTML查看效果 往期目录 往期相关文章目录 专栏目录 创建Demo2界面 经过前面两小节 一.Winform使用Webview2(Edge浏览器核心) 创建demo(Demo1)实现回车导航到指定…

用立创EDA(专业版)设计原理图

简介 立创EDA,国产的EDA工具。 下载 官方下载链接 下载后,直接一直下一步,最后安装提示免费激活即可。 注意 嘉立创EDA专业版的数据和立创EDA标准版的数据不互通, 常用原理图绘制设置 开发流程 新建工程绘制PCB 文件->新…

【QT+QGIS跨平台编译】之一:【sqlite+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、sqlite3介绍二、文件下载三、文件分析四、pro文件五、编译实践 一、sqlite3介绍 SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的&…

【数据结构】 双链表的基本操作 (C语言版)

目录 一、双链表 1、双链表的定义: 2、双链表表的优缺点: 二、双链表的基本操作算法(C语言) 1、宏定义 2、创建结构体 3、双链表的初始化 4、双链表表插入 5、双链表的查找 6、双链表的取值 7、求双链表长度 8、双链表…

2023年12月 Scratch 图形化(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch图形化等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 观察下列每个圆形中的四个数,找出规律,在括号里填上适当的数?( ) A:9 B:17 C:21 D:5 答案:C 左上角的数=下面两个数的和+右上角的数

142.环形链表 II 、141. 环形链表(附带源码)

目录 一、142问题的分析与解决: 二、怎么做? 三、142代码 四、141代码 一、142问题的分析与解决: 核心:定义快慢指针:slow、fast 思路是当快指针fast进环时,慢指针slow一定没有进环 这个时候就是就变…

flink基本概念

1. Flink关键组件: 这里首先要说明一下“客户端”。其实客户端并不是处理系统的一部分,它只负责作业的提交。具体来说,就是调用程序的 main 方法,将代码转换成“数据流图”(Dataflow Graph),并最终生成作业…

Leetcode刷题笔记题解(C++):LCR 174. 寻找二叉搜索树中的目标节点

思路:二叉搜索树的中序遍历是有序的从大到小的,故得出中序遍历的结果,即要第cnt大的数为倒数第cnt的数 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeN…

新闻每天都在更新,那网页上的新闻页面是怎么使用Dreamweaver制作的?

新闻每天都在更新,那网页上的新闻页面是怎么使用Dreamweaver制作的? 新闻有很多种,但大多数结构都差不多,我们就先做一个简单的新闻页面,如图1中画圈圈的新闻内容。 图1 案例实现 新闻页面一般由四个部分构成&#…