首页 > 编程知识 正文

越权漏洞 扫描,如何进行软件的漏洞分析

时间:2023-05-04 06:49:18 阅读:9538 作者:3591

一、原理越权漏洞是web APP应用中常见的安全漏洞。 其威胁是,一个帐户可以控制所有工作站的用户数据。 当然,这些数据仅限于与有漏洞的功能相对应的数据。 越权漏洞的原因主要是开发者在添加、删除、变更、查询数据时过于接收客户端请求的数据而忽略了权限的判定。

二、分类主要分为水平越权和垂直越权。 让我们简单地理解这两者的区别。

水平越权:攻击者尝试访问与他具有相同权限的用户资源。 例如,有一个写作网站,作者(a )登录后,可以对自己的文章进行投稿、显示、删除等操作。 删除文章后,提交的请求URL如下所示。

http://www.xxxx.com/article.php? action=deleteid=1 action参数是要执行的动作delete的删除,id是文章id号。 a如果用户想恶意攻击,请将id号更改为2,并发送了以下URL :

http://www.xxxx.com/article.php? action=deleteid=2

由于id为2的文章不是a用户的,所以a将id变更为2并删除成功,此时程序没有对请求进行权限判断,任何人都可以操作,这是越权。

垂直越权:垂直越权分为两部分,分别是向上越权和向下越权。 指较高级别的攻击者试图访问较高级别的用户的资源,较低级别的用户试图访问较低级别的用户的资源。 例如,一个用户的个人信息管理页面是user.php,管理员管理所有用户信息的页面是manageuser.php,但没有验证与管理页面相关的权限,允许任何人输入和访问管理页面的地址越权的相反。

三、生成条件通常一个Web程序功能流程是登录-提交请求-验证权限-数据库查询-返回结果。 验证权限不足会导致越权。 一般程序认为,登录可以验证用户的身份,而不验证下一步,最终导致越权。

1,隐藏URL

控制对某些程序访问的管理员管理页面只对管理员可见,对普通用户不可见。 利用URL进行访问控制,但如果URL泄露或被恶意攻击者推测,则会导致越权攻击。

2 .直接参照对象

这样,通过变更参数就产生了关卡越权。 例如,可以通过查看用户信息页面上的URL并添加自己的id来查看,并在更改为他人的id号时返回他人的信息,从而产生越权级别。

3、多层次功能

多阶段功能是指一个功能有多个阶段的实现。 例如,更改密码时,第一步可能是验证用户标识、号码验证码类。 认证成功后,转至步骤2,输入新密码。 许多程序在这一步中将不再认证用户。 因此,恶意攻击者可以抓住软件包直接更改参数值,并更改任何用户密码。

4 .静态文件

许多站点的下载功能、下载的静态文件(例如pdf、word、xls等)可能只能由付费用户或会员下载,但这些文件的URL地址泄露后,任何人都可以通过下载

5、平台配置错误

一些程序使用后台地址等控件来限制对用户的访问。 普通用户必须属于管理员组才能访问。 但是,如果配置错误的平台或控件,则会发生越权访问。

四.检测工具Burpsuite Firefox

五、如何发现越权漏洞。 与服务器交换数据时,客户端有标识用户身份的cookie,服务端session与cookie中的身份匹配后,可以允许该用户进行相关操作。 (cookie和session的关系(一弹、二弹) )。 除了cookie之外,请求还可能带来一些参数。 仔细看,识别信息的唯一值可能存在。 这里有一点可以说,要传输的参数不一定在请求参数中,也可能存在URL链接的位置(GET和POST请求之间的差异)。 拦截请求后,分析是否有参数。

1、请求中不存在参数,只能通过cookie进行认证,不能水平越权,可能发生垂直越权

2、请求中存在参数,参数中的一些值可以是标识信息的唯一值,如employeeID、departmentID、ID等,可能存在水平和垂直越权; 越权的原因是未确定参数的employeeID是否为cookie用户管辖的员工ID。

六、如何测试渗透测试,可以对一些请求进行打包操作,或者查看请求的URL地址,对关键参数修改以下值并查看结果,进行初步判断。 然后,可以注册两个小号,相互辅助判断是否有越权。

一般越权多发功能包括根据订单号码检查订单、根据用户ID显示账户信息、修改/回收密码等。

对于代码审计,可以查看前端web源代码,并查看一些操作的表单提交值。 检查配置文件和一些筛选器,查看是否有与URL相关的筛选器操作。 最后检查后台处理逻辑,判断是否存在认证机制,逻辑是否异常,有时逻辑漏洞也会导致越权操作。

一般测试可以注册两个小号测试,更方便。 恐怕流程图如下。

> 七、如何修复

1,类似于这种请求,例如查看用户信息等,不能只根据用户 id 去搜索,应该再次进行身份验证。

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

3,在每个页面加载前进行权限认证。

4,特别敏感操作可以让用户再次输入密码或其他的验证信息。

八、思维导图


版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。