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,可以看到添加的用户。
有任何问题都可以随时关注私信!

1371

被折叠的 条评论
为什么被折叠?



