什么叫越权行为

目录 一、前言: 二、介绍: 三、原理: 四、产生原因: 4.1、代码逻辑(前端)问题 4.2、数据库(后端)问题 五、危害: 六、漏洞出现: 七、利用过程: 7.1、pikachu(Over

目录

一、前言:

二、介绍:

三、原理:

四、产生原因:

4.1、代码逻辑(前端)问题

4.2、数据库(后端)问题

五、危害:

六、漏洞出现:

七、利用过程:

7.1、pikachu(Over Permission-水平越权)

7.1.1、第一步:日常分析参数

7.1.2、第二步:日常修改参数

7.1.3、第三步:查看返回的信息

7.2、pikachu(Over Permission-垂直越权)

 7.2.1、第一步:分析高权限用户操作功能

7.2.2、 第二步:获取操作的URL

 7.2.3、第三步:实现越权添加用户


(青春是用来奋斗的) 

一、前言:

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


二、介绍:

水平越权和垂直越权(常见的漏洞类型),在开发时候权限划分和控制上存在逻辑上的缺陷导致(逻辑安全漏洞)

顾名思义,攻击者利用逻辑安全漏洞进行越权,去执行超出了权限或权力范围的命事件,并且服务器端对客户提出的数据操作请求过分信任,忽略了对该用户操作权限的判定,导致修改相关参数就可以拥有了其他账户的增、删、查、改功能,从而导致越权漏洞。

eg:

用户A只能够对自己的信息进行增删改查操作,但是由于对用户的权限没有做出严格的限制,使得用户A可以通过修改数据包,从而达到访问同级用户B或操作用户B的目的,用户A也可以通过修改数据包访问或操作管理员用户C。


三、原理:

越权漏洞,对用户权限的判定、检查授权存在漏洞,针对此漏洞,通过低权限用户账户绕过权限检查,从而访问、操作同级用户或更高权限的用户。

水平越权(同级越权,是一种访问控制攻击):用户在权限相同级别下的组,可以进行越权访问、修改、删除数据。服务器接收到用户请求数据包,增删改查某条数据时,没有对数据的所属人进行严格判断,直接从前端用户提交的数据包中的表单参数里面获取了userID,并进行授权。如果攻击者恶意构造他人的userID后进行增删改查,那么将导致水平越权的产生。

垂直越权(跨级越权,是一种权限提升攻击):用户可以在不同权限的组下,进行高级别的权限访问。服务器端没有做严格的权限控制,导致低权限用户只要猜到高权限管理页面的URL,通过低权限用户伪造高权限用户URL,达到访问或控制其他角色的数据,实现了权限提升。
 


四、产生原因:

4.1、代码逻辑(前端)问题

判定前端传输的数据,根据用户的权限,选择性的显示对应权限的代码内容

只是将前端进行一个隐藏,并没有对后端进行一个权限过滤,没有将用户权限与对应功能进行绑定,高权限用户的功能点还是能被触发

4.2、数据库(后端)问题

数据表没有进行一个很好的权限划分,将不同权限的用户都存在一个user表中(高低权限用户同表),通过usertype类似的字段来区别权限,并未对参数进行一个过滤,攻击者可以修改usertype的参数,达到进行越权访问。

没有进行session等验证


五、危害:

浮想联翩了,漏洞利用能实现什么功能也就能对用户产生哪些危害

用户信息泄露、篡改……


六、漏洞出现:

越权漏洞一般出现在登录页面(权限区分的地方)和增删改查的的地方

针对对象用途用户提交信息
userID使用某些功能时提交的身份ID (userID、账号等用户的唯一标识信息)
对象ID对象ID (如交易号)
文件名文件名


 (自身的强大,掩盖一切的平庸)

七、利用过程:

7.1、pikachu(Over Permission-水平越权)

7.1.1、第一步:日常分析参数

登录的用户名和她参数相对应的,都没必要去多次尝试推理爆破啥的了 

7.1.2、第二步:日常修改参数

(没事多用用burpsuite,天天在浏览器上改就碰不到burpsuite的问题,到以后碰到问题也不会解决了)

登录lucy用户,然后在lucy里面执行查询个人信息操作

将对应参数使用burpsuite抓包并改为kobe,再放包

7.1.3、第三步:查看返回的信息

现在URL地址是Lucy的,但是查看的信息变成了kobe的

(挺有趣的操作)

7.2、pikachu(Over Permission-垂直越权)

 7.2.1、第一步:分析高权限用户操作功能

分析管理员和用户区别

下面登录的pikachu(低权限用户)

只能查看相关信息

登录admin(高权限)去执行相关操作

7.2.2、 第二步:获取操作的URL

点击添加用户

下面这个URL就是执行添加用户操作的

 如果是抓包,也就是这样的

 注意:但是上面这些只是添加操作的URL,看见GET就知道不是提交表单的POST

 7.2.3、第三步:实现越权添加用户

再来看看提交数据时的数据包

使用admin(高权限)提交的表

POST /pikachu-master/vul/overpermission/op2/op2_admin_edit.php HTTP/1.1

……

username=test&password=000000&sex=%E7%94%B7&phonenum=1111111&email=%40qq.com&address=beijing&submit=%E5%88%9B%E5%BB%BA

使用pikachu(普通用户)的session执行添加操作

来的地址,是登录,这一步登录就变成修改了

(感觉就是伪造数据包)

Referer: http://localhost:8080/pikachu-master/vul/overpermission/op2/op2_login.php

然后请求方法和URL都改为修改时候的URL

POST /pikachu-master/vul/overpermission/op2/op2_admin_edit.php HTTP/1.1

使用的是pikachu的cookie

Cookie: PHPSESSID=tb9nagh7k6bteg9hj288pfh481

放包后再查看,就已经添加成功了

 (这不就是数据包伪造嘛,不过他确实越权了,这个名字取的没毛病)

 

知秋君
上一篇 2024-09-12 08:48
下一篇 2024-09-12 08:12

相关推荐