【web安全】——逻辑漏洞之越权漏洞

作者名:Demo不是emo 

主页面链接:主页传送门
创作初心:一切为了
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:网络安全,数据结构

每日emo:希望我失望的日子过的快些

【web安全】——逻辑漏洞之越权漏洞_第1张图片

目录

一.越权漏洞简介

二. 越权漏洞分类

1.水平越权

2.垂直越权

3.上下文越权

三. 越权漏洞易发生的点

1.基础参数

2.多阶段验证

3.基于参数的访问控制

4.链接隐藏

5.其他位置

四. 越权漏洞的挖掘

五. 实例演示

 1.垂直越权

 2.水平越权

六. 越权漏洞的防御 


一.越权漏洞简介

越权漏洞是Web应用程序中一种常见的安全漏洞。它的威胁在于一个账户即可控制全站用户数据。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。而且属于逻辑漏洞的一种,防护和检测都不好做。

二. 越权漏洞分类

按照维度分:

1.水平越权

这种类型的越权就是越权其他用户,比如说你要查看一篇邮件,但是有越权漏洞,却可以查看其他人的邮件。水平越权导致任意用户敏感信息泄露或者用户信息被恶意修改。

2.垂直越权

这种类型的越权就是可以在不同身份之间越权,比如你是普通用户,但是可以越权到管理员,甚至超级管理员。管理员和超级管理员能使用的功能就多了。

3.上下文越权

上下文越权就是说在某个程序需要执行n个步骤,而你却可以跳过其中某个步骤,直接到最后的步骤。

三. 越权漏洞易发生的点

1.基础参数

通过修改一下参数就可以产生水平越权,例如查看用户信息页面 URL 后加上自己的 id 便可查看,当修改为他人的id号时会返回他人的信息。再比如cookie中的参数就作为用户的凭据,修改这个凭据便可以其他用户身份通过验证。

2.多阶段验证

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

3.基于参数的访问控制

有的程序会在参数里面进行权限认证。如:www.xxx.com/uid=test&admin=0 ,把0改为1就有了admin权限。

4.链接隐藏

有的程序会把页面独立,让爬虫爬取不到,但是可以使用扫目录的方式扫到url,如果此时页面不做权限认证,就可直接访问到功能点,或者只是前端跳转,可以使用burp抓回包,然后删除js代码绕过。

5.其他位置

越权可能存在的地方:增、删、改、查、详情、导出等功能,当有这些功能的时候提高重视,在url、post data、cookie处寻找是否有鉴权参数

最关键的点就是定位鉴权参数,然后替换为其他账户鉴权参数的方法来发现越权漏洞。

四. 越权漏洞的挖掘

 测试水平越权漏洞一般要控制2个账号,来互相探测能否影响到对方数据,一般是使用2个浏览器,分别使用2个账号登陆,在各个功能点修改参数(get、post、cookie)观察是否会影响到另一个账号的数据。  测试垂直越权一般看是否补通过认证即可访问管理页面,或是找是否有一个参数表示身份权限是否是管理员。

. 实例演示

 1.垂直越权

找到需要登陆的页面

【web安全】——逻辑漏洞之越权漏洞_第2张图片  通过目录扫描发现后台管理可不需要登陆直接访问,这就造成了垂直越权

 【web安全】——逻辑漏洞之越权漏洞_第3张图片

 2.水平越权

首先注册账号sec123然后上传一个附件,再注册一个账号sec321,用sec321上传一个不公开附件 【web安全】——逻辑漏洞之越权漏洞_第4张图片

【web安全】——逻辑漏洞之越权漏洞_第5张图片

使用sec123下载上传的附件

【web安全】——逻辑漏洞之越权漏洞_第6张图片  修改pathfile字段,即可下载sec321用户的附件,遍历pathfile字段即不需要知道确切文件名即可下载其他用户文件

【web安全】——逻辑漏洞之越权漏洞_第7张图片

六. 越权漏洞的防御 

1.不能只根据用户 id 参数去搜索,应该再次进行身份验证(防止水平越权)。

2.可以从用户的加密认证 cookie 中获取当前用户 id,防止攻击者对其修改。或在 session、cookie 中加入不可预测、不可猜解的 user 信息。

3.在每个页面加载前进行权限认证(防止垂直越权)。

4.对有多步验证的应用,需要准确验证上一步是否通过。

你可能感兴趣的:(网络安全,web安全,安全)