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

概述

pikachu-越权漏洞源码分析及修复_第1张图片

over permission源码分析

水平越权

登陆lucy账号,查看个人信息
pikachu-越权漏洞源码分析及修复_第2张图片
退出lucy账号
pikachu-越权漏洞源码分析及修复_第3张图片
登陆kobe账号,查看个人信息
pikachu-越权漏洞源码分析及修复_第4张图片
我们发现查看个人信息的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的个人信息。由此存在水平越权漏洞。
pikachu-越权漏洞源码分析及修复_第5张图片
代码分析
查看信息的页面:
pikachu-越权漏洞源码分析及修复_第6张图片
跟进check_op_login函数,函数只检查了isset($_SESSION[‘op’][‘username’]) && isset($_SESSION[‘op’][‘password’])pikachu-越权漏洞源码分析及修复_第7张图片再去看看登陆界面的代码:不管是lucy还是kobe,登陆之后都设置$_SESSION[‘op’][‘username’] 和 $_SESSION[‘op’][‘password’]
pikachu-越权漏洞源码分析及修复_第8张图片
以上,存在越权漏洞,因为在查看信息的界面,只判断是否登陆,没有判断是谁登陆。

垂直越权

pikachu-越权漏洞源码分析及修复_第9张图片
先登录pikachu账号,发现只有查看权限
pikachu-越权漏洞源码分析及修复_第10张图片
登陆admin账号,发现有查看和添加权限
pikachu-越权漏洞源码分析及修复_第11张图片
admin账号随意添加一个会员,
pikachu-越权漏洞源码分析及修复_第12张图片
这里是这次添加会员的请求包,之后会用到
pikachu-越权漏洞源码分析及修复_第13张图片
现在退出高权限的admin账号,登陆低权限的pikachu账号,我们试试能不能用低权限的账号越权做添加会员用户的操作。
pikachu账号登陆之后,重发刚才添加会员的请求包,但是把cookie改成piakchu账号的cookie。

pikachu-越权漏洞源码分析及修复_第14张图片
发现添加成功
pikachu-越权漏洞源码分析及修复_第15张图片
代码分析
op2_login.php
pikachu-越权漏洞源码分析及修复_第16张图片
op2_admin.php
pikachu-越权漏洞源码分析及修复_第17张图片
op2_user.php
pikachu-越权漏洞源码分析及修复_第18张图片
由admin.php和user.php得知,在只登陆pikachu账号而未登录admin账号时,访问admin的页面是访问不成功的,因为admin.php有检验账号的level级别。

我们再看看添加账号的页面代码:
pikachu-越权漏洞源码分析及修复_第19张图片没有检验level级别,才导致越权存在。

修复方案

对权限进行严格的校验

你可能感兴趣的:(web学习)