分享一次水平越权漏洞测试过程

1851 篇文章 51 订阅
1221 篇文章 21 订阅

一、背景

AI视频客服系统是运营商事业部数字公众业务部的产品,随着虚拟数字人技术的兴起,AI视频客服也越来越受运营商的重视,目前我们的产品已运用于电信和移动公司,同时带来的安全问题也越来突出,作为本产品的测试负责人,我义无反顾地肩负起产品的安全测试任务。

视频客服系统业务逻辑中存在相同角色的多个二级组织,不同组织之间的数据相互隔离,这就使得存在水平越权的可能。公司小安平台目前支持web系统的安全扫描,但针对越权这一块漏洞,小安平台仅能检测出未授权访问的漏洞,而对垂直越权和水平越权无法进行检测,这就需要人工进行检测。

本案例是分享在web系统安全测试过程中如何一步步挖掘发现水平越权漏洞的过程,供初入安全测试的同事们学习参考!


二、越权漏洞介绍

1、什么是越权漏洞?

越权漏洞是指应用程序未对当前用户操作的身份权限进行严格校验,导致用户可以进行超出自己权限范围的操作。简单来说,就是攻击者可以做一些本来不该他们做的事情(增删改查)。

2、越权漏洞成因是什么?

越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查时,对客户端请求的数据过分相信而遗漏了权限的判定。

3、什么是水平越权?

发生在具有相同权限级别的用户之间。攻击者通过利用这些漏洞,访问其他用户拥有的资源或执行与其权限级别不符的操作。

4、什么是垂直越权?

发生在具有多个高低权限级别的系统中。攻击者通过利用这些漏洞,从一个低权限级别跳转到一个更高的权限级别。例如,攻击者从普通用户身份成功越权成为管理员。

5、越权漏洞的危害有哪些?

  • 数据泄露:攻击者可以通过越权访问敏感数据,如个人信息、财务数据或其他敏感数据。这可能导致违反隐私法规、信用卡信息泄露或个人身份盗用等其它安全问题。

  • 权限提升:攻击者可以利用越权漏洞提升其权限级别,获得系统管理员或其他高权限用户的特权。这可能导致对整个系统的完全控制,并进行更广泛破坏力更大的恶意活动。

三、漏洞挖掘经过

思路

通过页面接口请求发现渠道管理菜单下,渠道的开通和关闭仅是通过参数channelId和channelStatus传参给服务端来改变,故考虑初步尝试将channelId修改成其它二级组织账号的channelId,来验证是否可以请求成功,如果请求成功说明存在水平越权。

图片


步骤

1、登录二级组织A账号(zjyd01),按F12调出开发者模式,进入渠道管理页面,看到所有渠道均是开通状态,在/channels接口返回的响应中可以看到所有的渠道id,本案例中我们选取渠道名称是"测试2"的渠道来进行验证,渠道id为16277653136102571(先在记事本中保存此id)。

图片

2、退出二级组织A(zjyd01)的账号,使用二级组织B(jsyd01)登录平台,访问平台的渠道管理页面。

图片

3、然后打开Burpsuite工具proxy菜单下的“Intercept is on”开关,将浏览器设置通过代理访问。在视频客服平台的渠道管理页面点击关闭某个渠道,切换至Burpsuite工具的proxy页面,将看到成功抓取二级组织B(jsyd01)关闭渠道的请求包。

图片

  • 请求参数中channelStatus为0将是关闭渠道,为1是开通渠道

4、在上面这个页面单击右键,点击Send to Repeater,然后进入Repeater菜单页面。

图片

图片

5、将保存在记事本的二级组织A(zjyd01)的"测试2"渠道id"16277653136102571"替换请求中接口路径和body参数中的channelId,然后点击"Go"。接下来就是见证奇迹的时刻……

图片

6、接口虽然返回成功,但秉着严谨的原则,我们还是在视频客服平台切换至二级组织A(zjyd01)登录页面,来实际看一下吧

图片

至此,可以确定此处确实存在水平越权安全漏洞

作为测试人员,我一直牢记"发现了bug的地方就有可能存在更多的bug",于是我又对渠道的编辑和删除进行了验证,果然不出所料,都存在水平越权漏洞(方法完全一样,此处不再详细描述)。

四、漏洞修复验证

1、先使用二级组织A(zjyd01)账号登录视频客服平台,进入渠道管理菜单页面,重新打开"测试2"渠道开关。

图片

2、退出二级组织A(zjyd01)账号,切换二级组织B(jsyd01)账号登录系统。进入渠道管理页面,使用Burpsuite开启拦截,浏览器开启Burpsuite代理访问,在视频客服平台页面操作关闭渠道,通过Burpsuite进行抓包,并点击右键,选择Send to Repeater。

图片

3、再次将请求包接口路径和body参数中ChannelId"16202530023041303"修改为二级组织A(zjyd01)"测试2"渠道的id"16277653136102571",点击"Go"。接口请求失败(开发修复逻辑是将用户id和资源id进行了绑定,解决了水平越权问题)

图片

4、返回视频客服平台,使用二级组织A(zjyd01)登录系统,查看渠道管理页面,"测试2"渠道没有被关闭,水平越权已修复。

图片

同样,验证渠道管理中的编辑和删除,水平越权漏洞均已不存在,至此,水平越权漏洞已修复完毕。


五、总结

1、一般越权漏洞容易出现在需要校验权限才能进入的系统,当用户在页面内进行增、删、改、查操作时,后台需要对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。
2、当一个模块中某一个操作存在权限校验不当导致的越权漏洞时,这个模块很可能其它操作也会同样存在越权漏洞。

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 786229024,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】在这里插入图片描述
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
水平越权漏洞是一种安全漏洞,指的是攻击者通过修改或伪造请求参数、会话标识或其他身份验证机制,以获取未经授权的访问权限或执行特权操作。以下是水平越权漏洞的成因和处置建议: 成因: 1. 不恰当的身份验证和授权机制:系统可能存在缺陷的身份验证和授权机制,未正确验证用户的权限或未正确限制用户的操作范围。 2. 不安全的会话管理:会话标识可能易于猜测、被劫持或未正确管理,导致攻击者能够访问其他用户的会话数据或执行特权操作。 3. 缺乏输入验证和过滤:未正确验证和过滤用户输入,攻击者可以通过修改请求参数实现越权操作。 处置建议: 1. 实施严格的身份验证和授权机制:确保系统正确验证用户身份和权限,并根据用户的权限限制其操作范围。 2. 安全的会话管理:使用随机、复杂且不易预测的会话标识,并确保会话标识在传输和存储过程中得到适当的保护。 3. 输入验证和过滤:对用户输入进行严格验证和过滤,确保只接受有效和预期的输入,并防止攻击者通过修改请求参数来实现越权操作。 4. 最小特权原则:在授权用户时,应遵循最小特权原则,只授予用户完成所需任务所需的最低权限级别。 5. 定期安全审计:对系统进行定期的安全审计,发现和修复可能存在的水平越权漏洞。 6. 持续安全培训和意识提高:教育开发人员、管理员和用户关于水平越权漏洞的风险和防范措施,增强他们对安全问题的意识。 通过以上措施,可以有效减少水平越权漏洞的风险,并提升系统的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值