越权漏洞笔记

本文详细阐述了越权漏洞的定义、分类(包括平行越权和垂直越权),通过代码示例揭示其成因,并提供了针对越权漏洞的修复方案,强调了完善用户权限体系和服务器端鉴权的重要性。
摘要由CSDN通过智能技术生成

1 越权漏洞描述

越权访问(Broken Access Control,简称 BAC)是 Web 应用程序中一种常见的漏洞,由于其存在范围广、危害大,被 OWASP 列为 Web 应用十大安全隐患的第二名。

该漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定,一旦权限验证不充分,就易致越权漏洞。

2. 越权漏洞的分类

2.1. 平行越权(水平越权)

水平越权:指相同权限下不同的用户可以互相访问

登录普通账号,修改查询的 id 或者用户。

2.2 水平越权代码分析

username 传入在此之前没有任何验证,传入参数拼接到数据库查询了。没有进行验证权限验证。

3. 垂直越权漏洞

垂直越权是不同级别之间或不同角色之间的越权,一般是低权限用户往高权限越权

3.1. 垂直越权漏洞利用

准备两个不同权限的账号 分别登录同一个网站,查看低权限的缺少高权限那些模块,抓取高权限的的模块

请求参数,再切换低权限用户再进行提交。

管理员 admin 123456 普通用户 pikachu 000000

管理员权限

普通权限

把 admin cookie 替换成 pikachu 的 cookie

把原来 admin 的 cookie 替换成 pikachu 用户的 cookie

越权成功,将会添加一个 moonsec 用户

3.2 垂直越权代码分析

登录账号和密码,在数据库中,返回 level 如果等于 1 跳转管理员页面

在op2_login.php源码

如果等于 2 就进行用户页面。

在 op2_admin_edit.php 源码中,只是判断是否登录,并没有对用户权限进行验证,只要是登录就能往下操作,这个页面的添加账号信息。所以登录的任何用户只要提交参数即可创建用户。

4 越权漏洞修复方案

1、基础安全架构,完善用户权限体系。要知道哪些数据对于哪些用户,哪些数据不应该由哪些用户操作;

2、鉴权,服务端对请求的数据和当前用户身份做校验;

3、不要直接使用对象的实名或关键字。

4、对于可控参数进行严格的检查与过滤!

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值