pikachu-越权漏洞源码分析及修复

概述

在这里插入图片描述

over permission源码分析

水平越权

登陆lucy账号,查看个人信息
在这里插入图片描述
退出lucy账号
在这里插入图片描述
登陆kobe账号,查看个人信息
在这里插入图片描述
我们发现查看个人信息的url有规律,查看kobe个人信息的的url为http://localhost/pikachu/vul/overpermission/op1/op1_mem.php?username=kobe&submit=点击查看个人信息
查看lucy个人信息的的url为
http://localhost/pikachu/vul/overpermission/op1/op1_mem.php?username=lucy&submit=点击查看个人信息

现在kobe是登录状态,lucy是未登录,但是在访问查看lucy个人信息的url,可以看到lucy的个人信息。由此存在水平越权漏洞。
在这里插入图片描述
代码分析
查看信息的页面:
在这里插入图片描述
跟进check_op_login函数,函数只检查了isset($_SESSION[‘op’][‘username’]) && isset($_SESSION[‘op’][‘password’])在这里插入图片描述再去看看登陆界面的代码:不管是lucy还是kobe,登陆之后都设置$_SESSION[‘op’][‘username’] 和 $_SESSION[‘op’][‘password’]
在这里插入图片描述
以上,存在越权漏洞,因为在查看信息的界面,只判断是否登陆,没有判断是谁登陆。

垂直越权

在这里插入图片描述
先登录pikachu账号,发现只有查看权限
在这里插入图片描述
登陆admin账号,发现有查看和添加权限
在这里插入图片描述
admin账号随意添加一个会员,
在这里插入图片描述
这里是这次添加会员的请求包,之后会用到
在这里插入图片描述
现在退出高权限的admin账号,登陆低权限的pikachu账号,我们试试能不能用低权限的账号越权做添加会员用户的操作。
pikachu账号登陆之后,重发刚才添加会员的请求包,但是把cookie改成piakchu账号的cookie。

在这里插入图片描述
发现添加成功
在这里插入图片描述
代码分析
op2_login.php
在这里插入图片描述
op2_admin.php
在这里插入图片描述
op2_user.php
在这里插入图片描述
由admin.php和user.php得知,在只登陆pikachu账号而未登录admin账号时,访问admin的页面是访问不成功的,因为admin.php有检验账号的level级别。

我们再看看添加账号的页面代码:
在这里插入图片描述没有检验level级别,才导致越权存在。

修复方案

对权限进行严格的校验

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值