越权漏洞(Over Permission)

概述

  • 漏洞描述:攻击者绕过权限认证对敏感内容或功能进行非授权访问。该漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定,一旦权限验证不充分,就易致越权漏洞。
  • 问题类型:代码编程类
  • 风险等级:中
  • 解决方案:所有页面都要增加认证控制。

漏洞原理

水平越权

攻击者尝试访问相同层级权限的用户数据。

例如承运商A和承运商B,拥有相同的权限等级,只能看到该承运商下订单信息,但如果系统只验证了能访问订单的角色,而没有对订单角色做细分或者校验,导致承运商A能访问到属于承运商B下的订单,那么承运商A访问承运商B下订单的这种行为就叫做水平越权访问。

8e3dc758728c6e14108291964fdf1b93.png

垂直越权

普通权限用户尝试访问高级别权限的用户数据。

由于后台应用没有做权限控制,或仅仅在菜单、按钮上做了权限控制,导致恶意用户只要猜测其他管理页面的URL或者敏感的参数信息,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。
0b8650fd91547a2c839d7e53c6c9590c.png

攻击方法

通过隐藏URL

实现控制访问有些程序的管理员的管理页面只有管理员才显示,普通用户看不到,利用 URL 实现访问控制,但 URL 泄露或被恶意攻击者猜到后,这会导致越权攻击。

直接对象引用

这种通过修改一下参数就可以产生水平越权,例如查看用户信息页面 URL 后加上自己的 id 便可查看,当修改为他人的 ID 号时会返回他人的信息,便产生了水平越权。

多阶段功能

功能有多个阶段的实现,例如修改密码,可能第一步是验证用户身份信息,号码验证码类的。当验证成功后,跳到第二步,输入新密码,很多程序会在这一步不再验证用户身份,导致恶意攻击者抓包直接修改参数值,导致可修改任意用户密码。

静态文件

很多网站的下载功能,一些被下载的静态文件,例如 pdf、word、xls 等,可能只有付费用户或会员可下载,但当这些文件的 URL 地址泄露后,导致任何人可下载,如果知道 URL 命名规则,则会便利服务器的收费文档进行批量下载。

平台配置错误

一些程序会通过控件来限制用户的访问,例如后台地址,普通用户不属于管理员组,则不能访问。但当配置平台或配置控件错误时,就会出现越权访问。

越权测试

前期交互

  1. 确认越权测试目标
  2. 确认越权测试范围
  3. 确认越权测试计划
  4. 确认越权测试初步方案

信息收集

  • 梳理测试范围内所有涉及业务权限划分的功能。

威胁建模

  • 分析信息收集结果做出越权测试的规划和可行性攻击方案。

漏洞分析

  1. 找出可以实施越权测试的攻击点
  2. 挖掘系统一些潜在的漏洞
  3. 开发出相应的漏洞利用代码

越权攻击

  • 使用已有的漏洞利用程序对目标系统进行渗透

后渗透攻击

  • 寻找最具价值、影响最大、尝试安全保护的信息和资产进行攻击途径进行渗透

测试报告

  • 渗透测试团队所获取的到各种有价值信息展示
  • 探测和挖掘出来的相关安全漏洞
  • 成功攻击的过程
  • 以及对业务造成的影响后果分析
  • 对系统中存在的脆弱环节、存在的安全问题给出修复建议

防御手段

  1. 前后端同时对用户输入信息进行校验,双重验证机制
  2. 执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
  3. 特别敏感操作可以让用户再次输入密码或其他的验证信息。
  4. 可以从用户的加密认证 cookie 中获取当前用户 id,防止攻击者对其修改。或在 session、cookie 中加入不可预测、不可猜解的 user 信息。
  5. 直接对象引用的加密资源ID,防止攻击者枚举ID,敏感数据特殊化处理
  6. 永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤

越权漏洞案例详解

环境信息:XAMPP环境下Pikachu靶场
测试范围:查看用户信息、用户管理
使用工具:FireFox,Burp suite

渗透攻击:

水平越权-查看用户信息
  1. 使用不同用户登陆查看URL地址
    cc562362c6d108f388a74ef8d54a8218.png
    e3002099eb3c0517ee28a4f63034b9a6.png
  2. 分析发现URL地址中仅有username不同
  3. 修改url地址中username发送给服务端查看响应
  4. 分析结果发现水平越权漏洞
垂直越权-用户管理
  1. 使用管理员账号登陆截取创建用户请求并转发至repeater
    8ac6bf35cec8a9af1c87d188b964caeb.png
  2. 使用无创建用户权限的普通用户登陆用户cookie替换repeater中管理员创建用户cookie
  3. 发送请求查看响应观察结果
    fc51b7cd29923d77df25ac1e88e13540.png
  4. 发现垂直越权漏洞
    f8332a513c27266c5fc34f4bba5e6b9b.png

后渗透攻击

  1. 垂直越权-恶意获取/篡改/删除用户信息

修复建议

水平越权
  1. 只判断了是否登录,没有判断是哪个用户
    81d4a27a37dad3b735fb088df379551b.png
垂直越权
  1. 只验证了登录状态,没有验证级别
    955b9f498e18dc8493432c4a99c192e3.png
原文地址:https://www.cnblogs.com/aquichita/p/13888443.html