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
相关文章:

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 ### 什么是访问控制: 访问控…...

C#使用DateTime.Now静态属性动态获得系统当前日期和时间
目录 一、实例 1.源码 2.生成效果 二、相关知识点 1.Thread类 (1)Thread.Sleep()方法 (2)Thread(ThreadStart) (3)IsBackground (4)Invoke( ) 2.CreateGrap…...

华为机考入门python3--(0)模拟题2-vowel元音字母翻译
分类:字符串 知识点: 字符串转list,每个字符成为list中的一个元素 list(string) 字符串变大小写 str.upper(), str.lower() 题目来自【华为招聘模拟考试】 # If you need to import additional packages or classes, please import …...

【轮式平衡机器人】——角度/速度/方向控制分析软件控制框架
轮式平衡机器人具有自不稳定性,可类比一级倒立摆系统的控制方法,常见有反馈线性化方法、非线性PID控制、自适应控制、自抗扰控制,还有改进的传统缺乏对外界干扰和参数改变鲁棒性的滑模变结构控制。我们采用较为简单的双闭环PID控制实现平衡模…...

HYBBS 表白墙网站PHP程序源码 可封装成APP
源码介绍 PHP表白墙网站源码,可以做校园内的,也可以做校区间的,可封装成APP。告别QQ空间的表白墙吧。 安装PHP5.6以上随意 上传程序安装,然后设置账号密码,登陆后台切换模板手机PC都要换开启插件访问前台。 安装完…...

【设计模式】适配器和桥接器模式有什么区别?
今天我探讨一下适配器模式和桥接模式,这两种模式往往容易被混淆,我们希望通过比较他们的区别和联系,能够让大家有更清晰的认识。 适配器模式:连接不兼容接口 当你有一个类的接口不兼容你的系统,而你又不希望修改这个…...
C语言应用层程序热补丁
一、热补丁简介 一个正在运行的程序,要是有某函数或某流程有问题,需要修改,有两个方式: 1.通过设置LD_PRELOAD把需要的库重新定向,但这种方式需要重启正在运行的程序。 2.通过修改可执行文件某个函数指向的地址&…...

【代码随想录+力扣hot100】双指针
文章目录 27. 移除元素思路:代码: 26. 删除有序数组中的重复项代码:思路一:重复元素必相邻思路二:从第一个位置开始考虑快慢指针 977.有序数组的平方思路:代码: 283. 移动零代码:思路…...

【Java程序员面试专栏 专业技能篇】MySQL核心面试指引(三):性能优化策略
关于MySQL部分的核心知识进行一网打尽,包括三部分:基础知识考察、核心机制策略、性能优化策略,通过一篇文章串联面试重点,并且帮助加强日常基础知识的理解,全局思维导图如下所示 本篇Blog为第三部分:性能优化策略,子节点表示追问或同级提问 读写分离 分布式数据库的…...

qnx 上screen + egl + opengles 最简实例
文章目录 前言一、qnx 上的窗口系统——screen二、screen + egl + opengles 最简实例1.使用 addvariant 命令创建工程目录2. 添加源码文件3. common.mk 文件4. 编译与执行总结参考资料前言 本文主要介绍如何在QNX 系统上使用egl和opengles 控制GPU渲染一个三角形并显示到屏幕上…...
python基础学习-02
基本的程序设计模式 任何的程序设计都包含IPO,它们分别代表如下: I:Input 输入,程序的输入 P:Process 处理,程序的主要逻辑过程 O:Output 输出,程序的输出 因此如果想要通过计算…...
服务调用Ribbon,LoadBalance,Feign
服务调用Ribbon、Fegin Ribbon实现负载均衡的原理 1:LoadBalancerAutoConfiguration这个类,这个类主要做的就是把LoadBalancer拦截器封装到RestTemplte拦截器集合里面去。 2:然后在代码里面调用restTemplate.getForObject或者其他方法的时候&…...

一条sql是如何运行的
在我们平时使用sql的时候,基本是基于黑盒的使用方式,在客户端输入一条sql语句,然后回显想要的数据,对于mysql server端内部如何运行的以及与存储引擎如何交互的不得而知。 通过下面一幅图,大致描述客户端和服务端交互…...

SystemC学习笔记(三) - 查看模块的波形
简述 波形在Simulation/Emulation中地位十分重要,尤其是在研发初期,只能通过波形来查看软件hang住的位置。 对于TLM来说,查看波形一般是指查看pvbus上的transaction,而对于SystemC本身来说,查看波形就是使用Gtkwave或…...
计算机网络(第六版)复习提纲5
SS2.2 有关信道的几个基本概念 2.通信模型 三个主要部分:信源、信道、信宿 3.通信方式: a)术语:消息(传递的内容)、数据(传递的形式)、信号(数据表现形式,有模拟信号和数字信号两种&…...

JavaScript 学习笔记(WEB APIs Day3)
「写在前面」 本文为 b 站黑马程序员 pink 老师 JavaScript 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. JavaScript 学习笔记(Day1) 2. JavaSc…...
Springboot自动装配:三个注解、Selector、spring.factories文件、@ConditionalOnProperty注解
借鉴: 这个链接是包含run方法进来debug看整个过程的,建议先看:https://www.cnblogs.com/starsray/p/15580915.html https://blog.csdn.net/fengxiandada/article/details/130080828 Springboot自动装配 1.创建springboot应用 如何创建一个s…...

软件工程应用题汇总
绘制数据流图(L0/L1/L2) DFD/L0(基本系统模型) 只包含源点终点和一个处理(XXX系统) DFD/L1(功能级数据流图)在L0基础上进一步划分处理(XXX系统) 个人理解 DFD/L2(在L1基础上进一步分解后的数据流图) 数据…...

P1789 【Mc生存】插火把(C语言)
首先,我们可以先用数组来储存地图(建议用int,我试过bool会RE) 每次读入火把和萤石的坐标 接着把能照亮的地方标记起来 最后用计数器统计会生成怪的地方有钻石的话还怕怪吗 最后,上代码 #include<stdio.h> i…...
计算机网络(第六版)复习提纲6
SS2.3 导引型传输媒体 1.三类位非导引型传输媒体 a)双绞线:两根铜线平行会相互干扰,垂直干扰最小,双绞线近似垂直,绞合度越高,可用的数据传输率越高。 i.无屏蔽双绞线UTP(便宜) ii.屏蔽双绞线&a…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...