一、什么是越权漏洞?它是如何产生的?

越权漏洞是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)

1.下载安装burpsuite

burpsuite需要java运行环境,所以必须先安装JDK并配置好环境变量-->JDK下载及环境变量配置教程
        配置好环境后双击.jar文件,弹出窗口无脑直接点击next即可打开(如果需要加载配置文件才需要勾选其他选项);切换到proxy模块,点击一下intercept is on按钮停止拦截数据。如图1

2.给浏览器安装证书用以访问https

3.首先打开firefox,在地址栏输入burpsuite的默认监听地址及端口127.0.0.1:8080,点击CA Certificate下载并保存证书cacert.der,如图二

4.接着依次点击firefox的菜单->选项->高级->证书->查看证书->证书机构->导入,选择刚才下载的cacert.der,在弹出的窗口中勾选“信任此CA标识的网站”,最后点击确定,如图三。

5.打开待测网站,拦截对应操作的请求数据

寻找网站中可以对数据进行增删改查的地方,比如我们要测试一下调整年假的操作是否存在越权时,先操作修改年假数量,然后在点击保存之前打开intercept的拦截开关,最后再点击确定按钮,就会拦截到请求数据,如图四

6.分析该请求是否有越权的可能

从拦截到的请求中我们可以看出,修改年假的操作使用的是POST请求,调用了接口/attendance/ajax-save-annual-adjust-days,并传递了参数employeeId、year、adjustDays。在这三个参数中明显可以看出employeeId是判断该条请求身份的参数,虽然cookie中存在QJYDID、WAVESSID、JSESSIONID等身份验证,但是如果开发人员没有判断这个employeeId是否是该cookie身份所在公司下的员工时,就会存在越权漏洞,导致修改任意employeeId就能操作年假的修改,不需要所属公司的限制。

7.把可能存在的越权的请求发送到repeater备用

repeater模块的功能就是对请求进行重放(repeat:重复),重放前我们可以对请求和参数任意修改。(直接在intercept模块修改参数,再点击forward放行也是可以的)
        在请求数据页面点击右键,选择“Send to Repeater”,该请求自动复制到repeater模块,如图五

8.关闭intercept的拦截开关,点击“intercept is on”后开关变为“intercept is off”就是关闭了

9.修改参数employeeId后重放请求

再打开一个firefox的隐身窗口(小技巧:firefox的普通窗口和隐私窗口不同源,可以分别登录两个公司,方便操作和查看),用公司B登录;刚才用普通窗口登录的是公司A,拦截请求时的employeeId是属于公司A的员工A01;我们可以通过浏览器自带的调试工具或同样的拦截方法获取一下公司B的员工B01的employeeId。把burpsuite切换到repeater模块,修改参数为员工B01的employeeId,点击GO,如下图
        查看这条返回数据的状态是true,message信息内容是“数据保存成功”,然后查看公司B的员工B01的年假是否显示我们请求时填写的99。
        ◆如果B公司的员工B01的年假显示为99:越权成功,我们用公司A的请求身份成功的修改了B公司员工B01的年假;
        ◆如果B公司的员工B01的年假没有变化:虽然返回数据显示成功,但是没有改变数值,这可以看做不存在越权漏洞(注意业务逻辑,修改的是12月份的数据,但当前报表展示的是11月份的);

10.解决重放请求的返回数据中文乱码

软件内目前不能直接转码,毕竟这款工具是歪果仁开发的,我们只能间接的查看乱码的中文。在response中右键,选择“request in browser->in original session”,复制弹出窗口的链接到firefox浏览器打开即可正确显示中文内容。

12.上面我们进行了水平越权的测试,想一想垂直越权怎么做呢?

水平越权是测试不同公司之间是否可以互相操作,垂直越权是测试同一公司不同权限的管理员是否可以操作不属于他管辖范围内的员工等。
        大概说一下垂直越权测试流程,感兴趣的童鞋可以尝试一下:
        ◆事业部管理员操作员工年假修改,拦截到请求后,把employeeId改成属于这个公司但是不属于这个事业部的员工,查看是否可以修改成功。(温馨提示:目前事业部没有做越权校验,可以操作所有员工,适合上手练习)
        ◆考勤权限管理员登录并修改员工年假,拦截请求并添加到repeater;公告权限管理员登录获取cookie数据;回放请求时换成公告权限管理员的cookie,查看是否可以修改成功。

六、实战演练(Fiddler)

1.安装并配置fiddler

打开fiddler按照下图所示进行设置

进入设置页面Tools->Fiddler Options

配置筛选器,方便拦截我们需要的数据

2、安装chrome的浏览器插件,方便切换浏览器代理

打开chrome后,直接把后缀为.crx的文件拖拽到浏览器里,插件会自动安装,然后进行如下设置
        

插件使用技巧->开启和关闭fiddler代理

插件使用技巧->让chrome的隐身窗口也可以使用代理
设置-更多工具-扩展程序,勾选SwitchyOmega插件的在隐身模式启用

3、打开两个chrome窗口,一个为普通模式,一个为隐身模式,分别登录两个不同的公司账号,拦截操作接口进行分析

选中待测接口,按F2可进入编辑模式,修改待测参数后重放(replay)请求查看结果

查看修改参数后的请求的返回结果,并在系统中进行手动操作的验证。

六、Fiddler与Burp Suite的优缺点
                 1、burp不支持中文,返回值的存在中文时会出现乱码,需要通过浏览器查看返回值的中文信息;

2、fiddler可以通过颜色来标记接口,burp不支持标记,但它可以把该请求发送到重放列表里进行操作,在列表中需要记忆第几个是公司A的接口,第几个是公司B的接口;

3、由于我们系统是基于chrome浏览器开发的并且使用https的安全通信协议,burp对这两项支持的不太好;

4、如果纯做数据拦截推荐fiddler,如果需要做爆破渗透推荐burp。

—————————————————————————————————————— 
原文链接:https://blog.csdn.net/zhengshengnan123/article/details/66472180/

使用burp suite或fiddler进行越权测试的步骤相关推荐

  1. Burp Suite Professional 2023.1 (macOS, Linux, Windows) - Web 应用安全、测试和扫描

    Burp Suite Professional, Test, find, and exploit vulnerabilities. 请访问原文链接:https://sysin.org/blog/bur ...

  2. Burp Suite Professional 2023.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描

    Burp Suite Professional, Test, find, and exploit vulnerabilities. 请访问原文链接:https://sysin.org/blog/bur ...

  3. 第二章 Burp Suite代理和浏览器设置

    Burp Suite代理工具是以拦截代理的方式,拦截所有通过代理的网络流量,如客户端的请求数据.服务器端的返回信息等.Burp Suite主要拦截http和https协议的流量,通过拦截,Burp S ...

  4. Burp Suite 官网中文教程

    第二章 Burp Suite代理和浏览器设置 https://t0data.gitbooks.io/burpsuite/content/chapter2.html Burp Suite代理工具是以拦截 ...

  5. Burp Suite-第二章 Burp Suite代理和浏览器设置

    Burp Suite-第二章 Burp Suite代理和浏览器设置 Burp Suite代理工具是以拦截代理的方式,拦截所有通过代理的网络流量,如客户端的请求数据.服务器端的返回信息等.Burp Su ...

  6. Burp Suite Professional 22.11.4 Crack

    Burp Suite Professional 是网络安全测试人员的首选工具包.使用它来自动执行重复的测试任务 - 然后使用其专家设计的手动和半自动安全测试工具进行更深入的挖掘.Burp Suite ...

  7. 渗透测试 ( 8 ) --- Burp Suite Pro 官方文档、Brida(frida)

    Burp Suite 官网 :https://portswigger.net/burp 官方文档:https://portswigger.net/burp/documentation/desktop ...

  8. 如何使用Burp suite抓取Fiddler转发的流量包

    如何使用Burp suite抓取Fiddler转发的流量包 前言: 作为一名专业的渗透测试工程师,熟练的使用Burp suite抓包工具是必备的技能.但是在某些情况下,burp suite抓包可能会出 ...

  9. 渗透测试工具Burp Suite详解

    Burp Suite 的安装 Burp Suite是一款集成化的渗透测试工具,包含了很多功能,可以帮助我们高效地完成对Web应用程序的渗透测试和攻击. Burp Suite由Java语言编写,基于Ja ...

最新文章

  1. 干货丨数据科学、机器学习、人工智能,究竟有什么区别?
  2. 学习官方示例 - System.TClass
  3. iOS高级面试之NSRunLoop须知
  4. ConfigParser-- 读取写入配置文件
  5. 帝国cms调用栏目自定义字段(栏目简介)如何操作
  6. C#静态变量和非静态变量的区别
  7. 出现画面抖动_解析液晶拼接大屏在使用中出现的常见问题及解决方案
  8. .NET Core 在程序集中集成Razor视图
  9. JMeter场景设置与监控
  10. linux arm current_thread_info定义,linux 内核 current全局变量
  11. css3 背景属性与边框属性的新增 200303
  12. centos nginx不是命令_Linux使用yum安装nginx服务教程
  13. 防风网-挡风抑尘墙:挡风抑尘墙
  14. JAVA中super和this关键字的区别
  15. 基于opencv的对CV_16U深度图像MAT中某点的像素值提取问题
  16. python表格数据对比_python入门之对比两份excel表格数据
  17. 辰信领创携手天津麒麟全力保障国产操作系统安全
  18. 轻松高效搭建可视化数据网站
  19. Nokia 为何只做 Windows Phone :我怕 Android 市场被三星独霸
  20. 傻乖透明小电视(最近在苦逼实习,实习结束整理发布,先来点彩蛋,关注后不会错过哦~)——ESP8266 NodeMCU+OLED+DFPlayer Mini+小喇叭

热门文章

  1. 【JS迷你书】我的 JavaScript 世界观
  2. 推荐!国外程序员整理的 C++ 资源大全
  3. 数学——结构、发现与思维
  4. 从安装docker到部署es集群管理的艰辛之旅
  5. 由SSL证书引发的微信公众平台token验证失败问题
  6. 苹果6s解除耳机模式_苹果钉子户,iphone6S到底怎么样?
  7. Linux下配置Lamp
  8. 当知识碰撞互联网 是否会相得益彰
  9. 手机首次充电方法及关于锂电池充电的正确知识
  10. 先出报表还是先计提所得税_先结转损益还是先计提企业所得税