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…...

安卓平板局域网内远程控制工控机方法
安卓平板局域网内远程控制工控机方法 将所需要远程控制的工控机通过网线连接到具有WiFi功能的路由器上,将安卓平板连接上WiFi,如下图所示 下载NoMachine远程软件安装包,官网地址:https://www.nomachine.com/ 点击Download now按钮…...

pinctrl子系统简介
一. 简介 上一章我们编写了基于设备树的 LED 驱动,但是驱动的本质还是没变,都是配置 LED 灯所使用的 GPIO 寄存器,驱动开发方式和裸机基本没啥区别。 Linux 是一个庞大而完善的系统, 尤其是驱动框架,像 GPIO …...

基于51单片机的温度报警控制系统Protues仿真设计
目录 一、设计背景 二、实现功能 三、总体硬件设计 四、仿真演示 四、源程序 一、设计背景 随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与了解环境温度。特别地,高温情况下极易造成火灾,例如,在…...

多级缓存
一、多级缓存 传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,如图: 存在下面的问题: •请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈 •Redis缓存失效时ÿ…...

【已解决】如何用typedef简化函数指针
博文内容简短,主要介绍typedef简化函数指针,形式是typedef int(*pp)(int,int);并用一个加法的例子去演示,如何用typedef简化函数指针。 示例 #include<stdio.h> int add(int a,int b) {return a b; } typedef int(*p)(int, int); in…...

UI网站汇总
Material Design的九大设计原则 Material Design的学习笔记 Material Design复杂响应式设计 MaterialPalette MD风格调色板 Iconfont Clipartlogo Dribbble https://dribbble.com/search?qapp Uplabs 优设 站酷 我图网 思维网 欢迎补充!!...

PLC-IoT 网关开发札记(5):将本地数据库作为资产打包发布到 App
App需求:保存物模型 什么是物模型 在项目开发中,用到了本地数据库,这个本地数据库记录了系统的物模型。所谓物模型就是对某一个设备的可操纵属性的定义,每一个设备包括了一个或者多个属性,通过获取这些属性的当前值可…...

固态硬盘优化设置
目录 前言: 关闭Windows Search 禁用系统保护(不建议) 不建议禁用系统保护原因 关闭碎片整理【机械硬盘】 提升固态硬盘速度 开启TRIM 合理使用固态硬盘的容量 正确关机 关闭开机自启 前言: 电脑配备固态硬盘就能一劳…...

SpringBoot跨域问题解决
前端访问后台接口时,浏览器报错,跨域无法访问。 报错信息如下: Response to preflight request doesnt pass access control check: No Access-Control-Allow-Origin header is present on the requested resource. 经过一番百度之后&#…...

FindMy技术与相机结合
FindMy是苹果公司提供的设备追踪服务,用来帮助用户定位丢失的设备。自苹果公司开放Findmy网络之后,FindMy技术便与各种生活设备相结合,比如与相机的结合。 想象一下,你正在外出办事或者旅行时,突然意识到相机丢了&…...