越权漏洞
越权漏洞概述
由于没有对用户权限进行严格的判断,导致低权限的账号(比如普通用户)可以去完成高权限账号(比如超级管理员)范围内的操作
- 平行越权:A用户和B用户属于同一级别用户,但各自不能操作对方个人信息,A用户如果越权操作B用户的个人信息的情况称为平行越权操作。
- 垂直越权:A用户权限高于B用户,B用户越权操作A用户的权限的情况称为垂直越权
越权漏洞属于逻辑漏洞,是由于权限校验的逻辑不够严谨导致的。每个应用系统其用户对应的权限是根据其业务功能划分的,而每个企业的业务又都是不一样的。因此越权漏洞很难通过扫描工具发现出来,往往需要通过手动进行测试。
前端用户平行越权
越权漏洞一般出现在有登录的页面,也就是说这个页面是有一定权限才可以访问的。
我们还是先用lucy的账号登录一下
登录之后,我们可以看到这里有一个功能——点击查看个人信息,那么我们点击一下
它会把当前登录的这个人的信息展示出来。我们可以看到在点击这个查看个人信息按钮的时候,实际上是发送了一个get请求
这个get请求把当前的用户名发送给了后台,然后后台把对应的信息展示出来。
我们当前账号登录的是lucy,如果我们把这个URL里的名字改成别人,是不是会出现别人的信息呢?
我们这里把lucy改成lili试一下
我们可以看到,我们的界面上出现了lili的信息,这种情况就是一个越权漏洞。
这里可以看到后台直接是对传进来的值进行了一个使用,而没有去验证是不是lili本人发出的请求。
垂直越权
首先我们用超级管理员的账号登录一下,这里的超级管理员的账号和普通管理员的账号可以通过点击右上角的提示看到。
这就是超级管理员的页面,我们可以看到超级管理员可以查看用户列表,还能添加用户。我们这里可以尝试去添加一个用户试试。
例如我们就可以添加一个类似于这样的用户,点击创建
我们可以看到这个用户已经被我们创建成功了,这是超级管理员的一个正常操作,我们把它这个数据包抓下来。
这个POST请求实际上就是我们超级管理员添加用户的请求,我们可以看到我们刚才填写的信息。那么我们把这个请求发送道Repeter里面去。
然后我们返回超级管理员控制界面,我们退出登录
我们这里已经退出了超级管理员的身份,我们去burp suite里重放刚才的数据包
发送完后,我们可以看到有一个跟随重定向,我们点击
然后后端就给我们重定向到了登陆页面,因为它检测到我们已经推出了超级管理员的登录态,也就是说这个请求是没有登录的,然后我们回到靶场,用普通管理员登陆一下。
我们可以看到我们普通管理员只有查看权限。我们去把这个页面获取一下,然后去burp suite获取一下登录态。
这个请求就是我们普通管理员的登录态,我们把这个登录态Cookie复制一下。然后我们找到刚才我们超级管理员的提交请求,再把它发送到Repeter。这里的登录态已经过期了,所以我们把它的登录态换成我们现在普通管理员的登录态
这里也就是我们以一个普通管理员的身份去进行超级管理员的操作。我们点击重放,然后再点击跟随重定向。之后我们返回刷新,看一下我们的记录
我们可以看到又多出了一个用户,就说明这里是存在垂直越权漏洞的。这种漏洞其实在生活中是比较难的,但是我们平时在测试的时候也是必须要测的。
我们看一下后台源码:
登录页面是没有问题的,根据不同的级别进入不同的页面。
它验证登录态的时候,只是根据session去获取到里面的用户名和密码,只是判断了当前的用户有没有登录,并没有判断用户的级别。所以产生了这样的问题。
528394" style=“zoom:67%;” />
它验证登录态的时候,只是根据session去获取到里面的用户名和密码,只是判断了当前的用户有没有登录,并没有判断用户的级别。所以产生了这样的问题。