pikachu之越权漏洞

pikachu之越权漏洞

一、什么是越权漏洞?

由于没有用户权限进行严格的判断,导致低权限的账号(比如普通用户)可以完成高权限账号(比如超级管理员)范围内的操作。

越权漏洞属于逻辑漏洞,是由于权限校验的逻辑不够严谨导致。

每个应用系统其用户对应的权限是根据其业务功能划分的,而每个企业的业务又都是不一样的。

因此越权漏洞很难通过扫描工具发现出来,往往需要通过手动进行测试。

二、分类

平行越权:A用户和B用户属于同一级别用户,但各自不能操作对方个人信息,A用户如果越权操作B用户的个人信息的情况称为平行越权操作。

垂直越权:A用户权限高于B用户,B用户越权操作A用户的权限的情况称为垂直越权。

三、靶场测试

1、水平越权

先根据提示登录,并点击“点击查看个人信息”:

image-20210216151002624

如图可以查看当前用户的个人信息。

通过分析url,发现是通过username参数以get请求方式查询数据的。

于是,尝试修改username参数内容,看能不能查询到其他用户的信息:

image-20210216151307954

于是将参数内容改为lili,并按回车:

image-20210216151358228

如图,直接返回了lili的个人信息。当前是以用户名lucy登录的,但通过修改参数直接查询到了lili的个人信息,而lili和Lucy属于平权用户,所以存在水平越权漏洞。

源码分析:-----------------------------------------------------------op1_mem.php

image-20210216152642824

函数check_op_login()

image-20210216220919945

2、垂直越权

基本思路:先抓取超级管理员修改账户信息的数据包,然后退出超级管理员身份的登录,切换到普通管理员的身份,然后用普通管理员的身份将该数据包进行重放,查看是否操作成功。

我们先登录admin超级管理员账号:

image-20210217133431274

查看可知,超级管理员可以对用户信息进行查看、添加、删除等。

我们登录普通管理员账号:

image-20210217133654072

发现普通管理员只能查看用户信息。

登录超级管理员账号,添加一条用户信息如图:

image-20210217134133123 image-20210217140201485

抓取超级管理员添加用户数据的数据包,发送到repeater模块,然后退出登录。重放数据包,发现已被重定向到了登录页面,说明后台有登录校验:

image-20210217140714205

切换到普通管理员的登录状态,抓取登录的数据包

image-20210217141040848

将复制的普通管理员登录状态的cookie,替换超级管理员添加用户信息的数据包的cookie,进行重放。

image-20210217141358875 image-20210217142149377

如图所示,添加成功。整个过程相当于是用普通管理员的身份向后台提交了个添加用户的数据包,结果添加成功,说明存在垂直越权漏洞。

源码分析------------------------op2_admin_edit.php

image-20210217142739847

登录校验函数check_op2_login()

image-20210217142948025

四、防范措施

1、对可控参数要进行严格的检查和过滤

2、执行关键操作前要进行用户身份的验证和权限验证

3、前后端同时校验

猜你喜欢

转载自blog.csdn.net/qq_43665434/article/details/113834211