逻辑越权漏洞
1.漏洞产生原理
逻辑越权漏洞就是不同用户之间操作权限的请求数据包没有做验证或验证不完整,导致用户A修改了身份验证的标志后,就有了同权限或高权限的操作权限。
通常用户访问一个应用的大致流程是:登陆—验证权限—数据库查询—数据返回,如果”验证权限”这个阶段出现验证权限不足或没有验证,那么就会导致越权,用户A可以操作其他用户的内容。
逻辑越权有两种类型,垂直和水平越权,可以理解为,在修改某个用作身份标识的参数后,用户A拥有了用户B对于应用的操作权限。
水平越权(同级别越权):也叫做访问控制攻击。web应用程序在接受用户发送过来的操作请求时,没有判断这条请求的数据操作所属人,攻击者可修改某个ID之类的身份验证,从而使A用户具有操作B账号的权力。
垂直越权(跨级别越权):也叫做权限提升攻击。使用低权限的账号,发送高权限账号才能有的请求,获得其高权限的操作。
2.漏洞利用
水平越权:修改对应身份验证的参数,如userid=1修改成userid=2来判断是否存在水平越权漏洞
垂直越权:获取高权限账号下的操作数据请求包,修改身份验证参数(cookie)等来判断是否存在垂直越权漏洞。
如何获取高权限账号请求数据包:
1,高权限账号直接代理抓取或普通权限账号获取(需要存在功能)
2,开源自行搭建,抓取数据包
3,根据普通账号猜测
3.靶场案例讲解——使用pikachu靶场
在这里给大家推荐:http://114.116.45.110/里面有各种靶场,不想自己搭建的小伙伴可以使用一下。
水平越权
点击提示选择lucy登录,点击查看个人信息
我们发现,lucy的信息是通过username参数以get请求方式提交的,我们这时候就可以修改username参数,修改成lili试试查看其信息,修改username参数的内容直接返回了lili的个人信息
当前是以用户名为lucy登录的,但我们通过修改username参数直接查询到了lili的个人信息,而lili和lucy属于同一级别用户,所以存在水平越权漏洞。
垂直越权
点击提示,用超级管理员登录
添加用户,并且使用Burp抓包
将抓到的包放入repeater中,放行包,发现生成了一个xiaoheizi用户
退出登录,使用普通用户登录,并使用Burp抓包获取cookie值:ifs79568fb7t1inga7fl9dvfq2
进入repeater中,将超级管理员的cookie,换成普通用户的cookie,并send发送
刷新普通用户界面,发现我们使用普通用户添加了一个xiaoheizi用户
区别:水平越权只能获得同级别权限,垂直越权能获得更高级别的权限。
4.危害
越权漏洞的危害与影响主要是与对应业务的重要性相关,⽐如说某⼀页⾯服务器端响应(不局限于页⾯返回的信息,有时信息在响应包中,页⾯不⼀定能看见)中返回登录名、登录密码、⼿机号、⾝份证等敏感信息,如果存在平⾏越权,通过对⽤户ID的遍历,就可以查看所有⽤户的敏感信息,这也是⼀种变相的脱裤,⽽且很难被防⽕墙发现,因为这和正常的访问请求没有什么区别,也不会包含特殊字符,具有⼗⾜的隐秘性
5.防护
1,前后端同时对用户输入信息进行校验,双重验证机制
2,调用功能前先验证用户是否具备此功能的操作权限
3,直接对象引用的加密资源ID,防止攻击者枚举ID,敏感数据特殊化处理
4,永远不要相信来自用户的输入,对可控参数进行过滤,验证和编码等
免责声明
本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本平台和发布者不为此承担任何责任。