pikachu靶场-8 越权漏洞

news/2024/11/29 0:52:31/

越权漏洞

越权漏洞概述

由于没有对用户权限进行严格的判断,导致低权限的账号(比如普通用户)可以去完成高权限账号(比如超级管理员)范围内的操作

  • 平行越权:A用户和B用户属于同一级别用户,但各自不能操作对方个人信息,A用户如果越权操作B用户的个人信息的情况称为平行越权操作。
  • 垂直越权:A用户权限高于B用户,B用户越权操作A用户的权限的情况称为垂直越权

越权漏洞属于逻辑漏洞,是由于权限校验的逻辑不够严谨导致的。每个应用系统其用户对应的权限是根据其业务功能划分的,而每个企业的业务又都是不一样的。因此越权漏洞很难通过扫描工具发现出来,往往需要通过手动进行测试。

前端用户平行越权
image-20221213155654204

越权漏洞一般出现在有登录的页面,也就是说这个页面是有一定权限才可以访问的。

我们还是先用lucy的账号登录一下

image-20221213155903785

登录之后,我们可以看到这里有一个功能——点击查看个人信息,那么我们点击一下

image-20221213160005206

它会把当前登录的这个人的信息展示出来。我们可以看到在点击这个查看个人信息按钮的时候,实际上是发送了一个get请求

image-20221213160131735

这个get请求把当前的用户名发送给了后台,然后后台把对应的信息展示出来。

我们当前账号登录的是lucy,如果我们把这个URL里的名字改成别人,是不是会出现别人的信息呢?

我们这里把lucy改成lili试一下

image-20221213160358307

我们可以看到,我们的界面上出现了lili的信息,这种情况就是一个越权漏洞。

image-20221213160524979

这里可以看到后台直接是对传进来的值进行了一个使用,而没有去验证是不是lili本人发出的请求。

垂直越权
image-20221213160740159

首先我们用超级管理员的账号登录一下,这里的超级管理员的账号和普通管理员的账号可以通过点击右上角的提示看到。

image-20221213160956683

这就是超级管理员的页面,我们可以看到超级管理员可以查看用户列表,还能添加用户。我们这里可以尝试去添加一个用户试试。

image-20221213161159261

例如我们就可以添加一个类似于这样的用户,点击创建

image-20221213161250981

我们可以看到这个用户已经被我们创建成功了,这是超级管理员的一个正常操作,我们把它这个数据包抓下来。

image-20221213161438079

这个POST请求实际上就是我们超级管理员添加用户的请求,我们可以看到我们刚才填写的信息。那么我们把这个请求发送道Repeter里面去。

image-20221213162730599

然后我们返回超级管理员控制界面,我们退出登录

image-20221213162939540

我们这里已经退出了超级管理员的身份,我们去burp suite里重放刚才的数据包

image-20221213163134537

发送完后,我们可以看到有一个跟随重定向,我们点击

image-20221213163236194

然后后端就给我们重定向到了登陆页面,因为它检测到我们已经推出了超级管理员的登录态,也就是说这个请求是没有登录的,然后我们回到靶场,用普通管理员登陆一下。

image-20221213164327436

我们可以看到我们普通管理员只有查看权限。我们去把这个页面获取一下,然后去burp suite获取一下登录态。

image-20221213164536864

这个请求就是我们普通管理员的登录态,我们把这个登录态Cookie复制一下。然后我们找到刚才我们超级管理员的提交请求,再把它发送到Repeter。这里的登录态已经过期了,所以我们把它的登录态换成我们现在普通管理员的登录态

image-20221213164908156

这里也就是我们以一个普通管理员的身份去进行超级管理员的操作。我们点击重放,然后再点击跟随重定向。之后我们返回刷新,看一下我们的记录

image-20221213165217281

我们可以看到又多出了一个用户,就说明这里是存在垂直越权漏洞的。这种漏洞其实在生活中是比较难的,但是我们平时在测试的时候也是必须要测的。

我们看一下后台源码:

image-20221213165418847

登录页面是没有问题的,根据不同的级别进入不同的页面。

image-20221213165528394

它验证登录态的时候,只是根据session去获取到里面的用户名和密码,只是判断了当前的用户有没有登录,并没有判断用户的级别。所以产生了这样的问题。
528394" style=“zoom:67%;” />

它验证登录态的时候,只是根据session去获取到里面的用户名和密码,只是判断了当前的用户有没有登录,并没有判断用户的级别。所以产生了这样的问题。


http://www.ppmy.cn/news/3361.html

相关文章

华为机试真题 C++ 实现【密室逃生游戏】【2022.11 Q4 新题】

目录 题目 思路 考点 Code 题目 小强增在参加《密室逃生》游戏,当前关卡要求找到符合给定密码K(升序的不重复小写字母组成)的箱子, 并给出箱子编号,箱子编号为1~N。 每个箱子中都有一个字符串s,字符串由大写字母、小写字母、数字、标点符号、空格组成, 需要在这些字…

【POJ No. 2114】 游船之旅 Boatherds

【POJ No. 2114】 游船之旅 Boatherds 北大OJ 题目地址 【题意】 河流总是形成一棵树(以村庄为节点),超过两条河流时可以在交叉路口汇入。游船的定价政策非常简单:两个村庄之间的每条河流都有一个价格(两个方向的价格…

Windows学习总结(25)—— Windows 11 cmd 命令大全

在 Windows 11 中,你可以用几种方式和方法来访问 CMD(又称终端)。通常的方法是在开始菜单中搜索 CMD,或者你可以在运行对话框中输入 CMD,或者按 Windows + X 或在开始菜单上右键单击,打开终端(又称 CMD)。 命令 功能介绍 Help 显示基本的CMD命令和每个命令的工作原理说…

【深入浅出SpringCloud原理及实战】「SpringCloud-Alibaba系列」微服务模式搭建系统基础架构实战指南及版本规划踩坑分析

前提介绍 SpringCloud-Alibaba致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配…

31.前端笔记-CSS-CSS3盒子模型和其他特性

1、CSS3盒子模型 原来的CSS盒子设置了border和padding属性,就会撑大盒子。 现在CSS3中可以通过box-sizing来指定盒模型,有两个值: content-box:盒子大小是widthpaddingborderbordr-box:盒子大小就是width,padding和border不会撑…

Kafka极客 - 15 重设消费者位移 Offset

文章目录1. 为什么要重设消费者组位移?2. 重设位移策略3. 消费者 API 方式设置4. 命令行方式设置1. 为什么要重设消费者组位移? 我们知道,Kafka 和传统的消息引擎在设计上是有很大区别的,其中一个比较显著的区别就是,…

Java——红黑树

概念 红黑树也是一种二叉搜索树,但是和avl树不同,它并不是依靠平衡因子来保证树的平衡的,而是通过颜色 红黑树每个节点中会存储颜色,分为红色和黑色,通过红黑树的限制条件,可以保证从根节点出发到叶子节点…

14:30面试,14:38就出来了 ,问的实在是太...

从外包出来,没想到算法死在另一家厂子,自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到8月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有…