pikachu Over permission 越权(皮卡丘漏洞平台通关系列)

目录

1、水平越权

(1)闯关

(2)原因

(3)防御

2、垂直越权

(1)闯关

(2)原因

(3)防御

3、尾声


这关也挺简单

1、水平越权

也称为横向越权,指相同权限下不同的用户可以互相访问,比如A和B是同权限的用户,如果A能看到理论上只有B能看到的信息,或者A能执行理论上只有B能执行的操作,那就是水平越权啦。

(1)闯关

进入pikachu的水平越权关卡,一开始要求登录

越权总要先用一个用户登录成功吧,点一下提示,这关有三个同级别的用户,账号密码分别是lucy/123456,lili/123456,kobe/123456

先用lucy登录,发现有个可以点击查看个人信息的地方

点一下,回显了lucy的个人信息

注意到上图中url的参数username的值是用户名lucy,那么会不会该参数值是哪个用户名就回显哪个用户的信息呢?

来试一下payload:http://ip:port/pikachu/vul/overpermission/op1/op1_mem.php?username=kobe&submit=点击查看个人信息#

成功看到kobe的个人信息,lili也是一样,就不演示了

### 关于Pikachu靶场中的垂直越权漏洞 #### 垂直越权漏洞概述 垂直越权(Vertical Privilege Escalation),也称为纵向越权,是指低权限用户能够执行高权限用户的操作或访问高权限资源的一种安全漏洞。这种类型的漏洞常见于身份验证机制不完善的情况下,例如未正确校验用户角色或权限等级。 在Pikachu靶场中,垂直越权漏洞的设计旨在帮助学习者理解如何利用此类缺陷并掌握防御措施。以下是具体示例及其解决方案: --- #### 示例场景描述 假设存在一个管理后台功能模块,在该模块下,管理员可以删除任意用户数据。然而,由于开发者的疏忽,普通用户也可以通过修改请求参数的方式访问到这一接口。例如,当普通用户尝试发送如下HTTP请求时[^3]: ```http POST /admin/delete_user.php HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded user_id=123 ``` 如果服务器端未对当前登录用户的权限进行严格校验,则可能导致普通用户成功模拟管理员行为完成非法操作——这就是典型的垂直越权现象。 --- #### 解决方案详解 针对上述情况,可以通过以下几种方法加强防护以防止垂直越权的发生: 1. **实施细粒度的角色与权限分离** 应用程序应当基于不同用户群体设定专属的操作范围,并且每次调用敏感API之前都要重新核实其所属类别是否具备相应权利。比如引入RBAC (Role-Based Access Control)模型来实现动态授权判断逻辑[^2]。 2. **强制绑定会话上下文中已认证的身份标识符至目标实体关联字段上** 当处理涉及特定对象的动作时(如编辑资料),应始终确认发起人的ID确实匹配所指定的目标记录主人。这样即使攻击者篡改了URL或者表单提交的数据也无法绕过限制条件[^4]。 3. **启用双重因子验证流程** 对某些特别重要的业务环节增加额外一层保护屏障,像短信验证码之类的时间敏感型一次性令牌作为辅助依据之一再做最终判定前加以考量。 4. **定期开展自动化扫描工具检测以及人工审计相结合形式下的全面风险评估活动** 定期运用专业的web应用防火墙(WAFs)产品配合内部团队成员细致入微地审查源码质量状况从而尽早发现潜在隐患所在之处及时修补漏洞. --- #### 实践代码片段展示 下面给出一段简单的PHP伪代码用于演示如何防范垂直越权问题: ```php <?php session_start(); // 获取当前登录用户的UID 和 角色信息 $currentUserId = $_SESSION['uid']; $userRole = $_SESSION['role']; if ($userRole !== 'admin') { die('Access Denied'); } $targetUserId = intval($_POST['user_id']); // 查询数据库确保当前用户有权限对该条目进行操作 $query = "SELECT COUNT(*) FROM users WHERE id=$currentUserId AND role='admin'"; $result = mysqli_query($conn, $query); $row = mysqli_fetch_row($result); if (!$row || !$row[0]) { die('Invalid Operation Attempt Detected!'); } else { // 正常继续执行删除动作... } ?> ``` ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值