WEB漏洞-逻辑越权之水平垂直越权全解

QQ截图20220211093334.jpg

逻辑越权简介

水平越权

  • 通过更换的某个 ID 之类的身份标识,从而使 A 账号获取(修改、删除等)B/C/D账号数据(权限相同)。

逻辑越权

  • 使用低权限身份的账号,发送高权限账号才能有的请求,获得其高权限的操作。

未授权访问

  • 通过删除请求中的认证信息后重放该请求,依旧可以访问或者完成操作。(有些操作要管理员才行)

QQ截图20220211101130.jpg

Pikachu-本地水平/垂直越权演示

水平越权

查看提示获得帐号密码,登录其中1个帐号抓包并查看内容

QQ截图20220211094700.jpg

QQ截图20220211094706.jpg

可以尝试将数据包中的lucy修改为其他用户,尝试越权,发现个人信息已经更改,已经获取到其它用户信息,同时如果条件允许,可以修改用户信息

QQ截图20220211094916.jpg

查看源代码

  • 这里直接将传入的username作为参数填入到sql语句中,甚至可以利用该漏洞进行sql注入

QQ截图20220211095047.jpg

垂直越权

查看提示获得帐号密码,登录其中2个帐号抓包并查看内容,目的是利用普通账户获得admin账户的权限

QQ截图20220211100246.jpg

对admin账户的数据包进行抓取

QQ截图20220211100903.jpg

获取到请求内容后尝试利用普通用户的cookie进行访问,前提是这个cookie没有退出登录过,成功添加新用户

QQ截图20220211100828.jpg

pikachu靶场的垂直越权是通过游客的cookie,去访问管理员的添加用户的文件(也就是adminedit.php文件),由于adminedit.php只验证是否登录,所以存在越权漏洞

QQ截图20220211103500.jpg

总结获取数据包的信息方法

  1. 前端有操作,可以直接抓包
  2. 盲猜添加用户的数据包信息
  3. 获取网站的源码,在本地进行测试
  4. 漏洞有些鸡肋,但是在用户登录的时候,可以利用该漏洞直接进入管理员界面

墨者水平-身份认证失效漏洞实战

进入靶场

QQ截图20220211102147.jpg

抓包和浏览器请求记录发现信息

QQ截图20220211102221.jpg

QQ截图20220211102227.jpg

QQ截图20220211102309.jpg

猜测该请求中的参数对应图片名,只要找到对应的图片名就可以获取题目要求的信息

QQ截图20220211102457.jpg

尝试修改burp请求来获取信息

  • 用户名为m233241,md5解密为9732343

QQ截图20220211102555.jpg

QQ截图20220211102650.jpg

越权检测-小米范越权漏洞检测工具

越权检测-Burpsuite 插件 Authz 安装测试

插件安装

QQ截图20220211104155.jpg

将测试器结果发送到Authz

QQ截图20220211105453.jpg

添加cookie后,点击run批量测试

QQ截图20220211105648.jpg

修复防御方案

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