一、什么是越权漏洞?它是如何产生的?
越权漏洞是Web应用程序中一种常见的安全漏洞。它的威胁在于一个账户即可控制全站用户数据。当然这些数据仅限于存在漏洞功能对应的数据。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。所以测试越权就是和开发人员拼细心的过程。
二、越权漏洞的分类?
主要分为水平越权和垂直越权,根据我们的业务通俗的表达一下这两者的区别:
水平越权:两个不同的公司A和B,通过修改请求,公司A可以任意修改B公司的员工、部门、考勤等信息;
垂直越权:同一个公司不同权限的管理员A和B,通过修改请求,管理员A可以修改不在他管辖范围内的员工的部门、考勤、工资等信息;
三、测试越权漏洞需要用到哪些工具?
实战一:Burp Suite,强烈建议用1.7的免费版(1.6破解版的https证书配置容易出问题)-->链接: https://pan.baidu.com/s/1qY6Makc 密码: 9sge
实战二:fiddler+chrome+SwitchyOmega插件(建议使用此款工具)
四、如何查找越权漏洞?
在与服务器进行数据交互时客户端携带着标识用户的身份的cookie,当服务端的session与cookie中的身份匹配成功后,才能允许该用户进行相关操作(cookie和session的关系-->一弹、二弹)。除了cookie之外,在请求中可能会带一些参数,细览下可能存在辨别信息的唯一值,来进行测试。这里要说一点,传输的参数并不一定在请求参数中,也有可能存在链接等位置。当拦截一个请求后分析是否有参数:
1、请求中不存在参数,只用cookie进行身份验证,不可越权;
2、请求中存在参数,并且参数中的某些值可能是辨别信息的唯一值(如employeeID、departmentID、ID等),可能存在越权;越权的原因是参数中的employeeID没有判断是否是cookie中用户所管辖的员工ID。
五、实战演练(Burp Suite)
-
下载安装burpsuite
burpsuite需要java运行环境,所以必须先安装JDK并配置好环境变量-->JDK下载及环境变量配置教程
配置好环境后双击.jar文件,弹出窗口无脑直接点击next即可打开(如果需要加载配置文件才需要勾选其他选项);切换到proxy模块,点击一下intercept is on按钮停止拦截数据。如图1