CTF‑Web 越权漏洞完整学习笔记|水平 + 垂直越权全原理 + 源码分析 + 实战复现

Pikachu—Over permission 越权

 、Over permission

1.简介

该漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一

些方式绕过权限检查,访问或者操作其他用户或者更高权限。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。在实际的代码审计中,这种漏洞往往很难通过工具进行自动化监测,因此在实际应用中危害很大。其与未授权访问有一定差别,目前存在着两种越权操作类型,横向越权操作(水平越权)和纵向越权操作(垂直越权)。

水平越权:指相同权限下不同的用户可以互相访问

垂直越权:指使用权限低的用户可以访问到权限较高的用户

水平越权测试方法:主要通过看看能否通过 A 用户操作影响到 B 用户

垂直越权测试思路:看看低权限用户是否能越权使用高权限用户的功能,比如普通用户可以使用管理员的功能。

把握住传参就能把握住逻辑漏洞的命脉

越权测试:

登录用户 A 时,正常更改或者是查看 A 的用户信息,然后抓取数据包,将传参 ID 修改为其他用户,如果成功查看或者修改了同权限其他用户信息就属于水平越权测试(如果可以影响到高权限用户就是垂直越权)

传参 ID 需要自己检测(例如: uid= id= user=等)通常使用 burp 进行爆破传参(传参可能在 get post cookie)

常见平行越权:

1.   不需要输入原密码的修改密码

2.   抓包改用户名或者用户 id 修改他人密码

3.   修改资料的时候修改用户 id

4.   查看订单的时候,遍历订单 id

防范措施

1.   前后端同时对用户输入信息进行校验,双重验证机制

2.   调用功能前验证用户是否有权限调用相关功能

3.   执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限

4.   直接对象引用的加密资源 ID,防止攻击者枚举 ID,敏感数据特殊化处理

5.   永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤

登录 Lucy 账号,可以看到 URL 中 username=Lucy,更改 URL 为 kobe

更改 URL 之后直接打开 kobe 账号,Lucy 和 kobe 是同级用户,所以属于水平越权。E:\phpstudy_pro\WWW\pikachu\vul\overpermission\op1 查看源码路径(我是放在 E 盘了)

传入的参数是直接使用 URL 中的,没有进行 session 校验

1. if($_SESSION['op']['username']==$_GET['username']){

2.       $username=escape($link,$_GET['username']); 3.    }

垂直越权

Admin URL  :127.0.0.1/pikachu/vul/overpermission/op2/op2_admin.php

添加用户 URL:127.0.0.1/pikachu/vul/overpermission/op2/op2_admin_edit.php

登录 admin 显示的界面及 URL

添加用户的界面及 URL

登录 Pikachu 之后将 URL 替换成 admin 登录后的 URL,发现需要登录,说明 Pikachu 和admin之间没有垂直越权,再次登录 Pikachu,将 URL 替换成添加用户 URL,不用登录即可进入,说明 Pikachu和添加用户之间存在垂直提权

再次登录 admin,可以看到添加的用户。

有任何问题都可以随时关注私信!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值