WEB漏洞—逻辑越权之水平垂直越权

WEB漏洞—逻辑越权之水平垂直越权_第1张图片
WEB漏洞—逻辑越权之水平垂直越权_第2张图片
水平越权:通过更换某个ID之类的身份标识,从而使A账号获取修改B账号数据;
垂直越权:使用低权限身份的账号,发送高权限账号才能有的请求,获取其更高权限的操作;
未授权访问:通过删除请求中的认证信息后重放该请求,依旧可以访问或者完成操作。

漏洞产生原理
前端安全问题:界面,判断用户等级之后可选显示,即如果判断为admin用户,则显示相关增删改查,否则不显示增删改查功能界面。前端不给界面不代表没有权限。
后端安全问题:数据库
user表(管理员和普通用户同表)
id,username,password,usertype
1,admin,123456,1
2,pikachu,000000,2
登录用户admin或pikachu时,代码时如何验证这个级别?(usertype判断)
如果在访问网站数据包中有传输用户的编号、用户组编号或类型编号的时候,那么尝试对这个值进行修改,就是测试越权漏洞的基本。
修复方案

  1. 前后端同时对用户输入信息进行校验,双重验证机制
  2. 调用功能前验证用户是否有权限调用相关功能
  3. 执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
  4. 直接对引用加密资源ID,防止攻击者枚举ID ,敏感数据特殊化处理
  5. 永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤

Pikachu靶场复现

水平越权
WEB漏洞—逻辑越权之水平垂直越权_第3张图片可以看到这里有三个用户
lucy、lili、kobe
先登录lucy看看信息
WEB漏洞—逻辑越权之水平垂直越权_第4张图片
尝试再URL上更改?username=的值
WEB漏洞—逻辑越权之水平垂直越权_第5张图片改为kobe后,直接就进入了kobe个人信息展示处
这就是水平越权

垂直越权(较严重)
在登录admin(较高一级的管理员)的情况下,对其操作进行抓包,在登录pikachu(低一级用户)时,就可以将较高一级的包调出来,更改cookiePHPSESSID=的值。
利用条件:需要有admin的数据包。

如何创造条件:
1、如果普通用户前端有操作界面,那么可以抓取数据包
2、盲猜构造cookie:PHPSessid值
3、通过搜寻网站源码本地搭建,自己去模拟登录管理员账号抓包获取

pikachu靶场复现:
WEB漏洞—逻辑越权之水平垂直越权_第6张图片发现这里有admin和pikachu两个用户,其中admin是超级管理员用户,有增加删除用户的权限
WEB漏洞—逻辑越权之水平垂直越权_第7张图片
我们先抓取个管理员账户增加用户的数据包,发送至repeater模块,然后废弃该包
WEB漏洞—逻辑越权之水平垂直越权_第8张图片

再去登录pikachu账户,而pikachu只有浏览用户的功能
WEB漏洞—逻辑越权之水平垂直越权_第9张图片
同样也抓取数据包
WEB漏洞—逻辑越权之水平垂直越权_第10张图片
当我们把pikachu账户添加用户的那个数据包的cookie:PHPSESSID复制到admin账户的cookie:PHPSESSID
WEB漏洞—逻辑越权之水平垂直越权_第11张图片
可以看到,test用户已被添加(上面是qqq,由于中间丢了包重新抓了,创建test用户了)
WEB漏洞—逻辑越权之水平垂直越权_第12张图片

你可能感兴趣的:(前端,安全,web安全)