还在人工测越权漏洞?快来自动扫描吧!

在这里插入图片描述

前言

关于越权漏洞,大家都熟知水平越权、垂直越权、未授权访问,此处不再赘述概念了。

对于越权类漏洞的测试,通用的测试方法,也都是人工通过代理抓包工具截获报文,然后尝试删除Cookie测试是否存在访问越权,或者篡改Uid、Uno之类的值测试是否存在业务逻辑越权等。

这种人工检测越权类漏洞的方法,不仅工作量大,而且效率低,还容易产生遗漏。

AppScan作为一个自动化的渗透测试工具,具备自动扫描越权漏洞的能力,可大大提高测试覆盖率和效率,减少人工成本。

所以,快跟我一起挖掘AppScan的这项隐藏技能吧。

特权升级

这个功能的位置就在扫描配置-测试-特权升级,AppScan将越权叫做特权升级,表述略有不同,但是同一个意思。

通过在AppScan中导入不同权限用户可访问的资源范围,AppScan就可以在测试过程中自动使用当前用户尝试去访问其他权限用户的资源,从而检测权限不足的用户是否可以访问到其他用户的资源范围。

用户测试

通过界面我们可以看到,AppScan扫描越权漏洞的两种方式:更高级的特权用户测试和非认证的用户测试。
图片

更高级的特权用户测试:导入一个更高级的特权用户的扫描文件,这个更高级的特权用户已经生成了扫描结果。

扫描时,AppScan会使用当前较低级别的用户账号去尝试访问更高级别用户才可以访问到的链接。并通过扫描结果展示哪些访问成功了。

非认证的用户测试:导入一个没有用户认证的情况下的扫描文件。

然后,AppScan会使用当前认证运行扫描,并记录其访问的新链接,接着再注销,并在没有认证的情况下去尝试访问这些新链接,扫描结果会展示哪些访问成功了。

有一个要点就是在上述测试方式中进行比较的扫描必须具有相同扫描配置,或者等效探索数据。

例如,如果被测网站在某个扫描中进行测试之前已经过手动探索,那么必须在与之进行比较的扫描中的测试阶段之前执行同一手动探索。

接下来,我们通过一个实例来演示一下AppScan自动化扫描越权漏洞的过程。

实例演示

以Pikachu靶场的垂直越权漏洞为例,在这个靶场中有两个用户:admin和pikachu,可以理解为admin是管理员用户,pikachu是普通用户。
图片

首先,打开AppScan创建扫描,用admin用户登录,AppScan记录相关操作所产生的的请求响应,运行测试,将扫描文件保存为admin.scan。

然后,再打开AppScan,创建新的扫描文件,使用pikachu用户登录,进行相关操作,AppScan会记录相应的请求响应。

第三步,打开扫描配置-特权升级,单击添加按钮:+

选择刚刚保存的admin.scan文件,点击打开。

并在下一步会弹出选择角色的窗口,录入角色为管理员,确定完成导入。
图片

图片

图片

第四步:关闭扫描配置页面后,在主页面上点击扫描-仅测试,将这个扫描文件保存为pikachu.scan。

这时,AppScan就会自动开始扫描了。

扫描完成后,查看扫描结果,报出了“使用特权不足用户的特权升级”漏洞。
图片

AppScan的越权漏洞自动化扫描功能,可以覆盖垂直越权、水平越权、未授权访问这三类越权漏洞。通过自动化的扫描,可以提高覆盖率和效率。

当然,自动扫描的结果需要进行人工的确认以排除误报。

在这里插入图片描述

最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

<think>嗯,用户想了解如何进行越权测试,特别是权限提升和越权访问的安全测试方法。首先,我需要回忆一下越权测试的基本概念。根据引用[2],越权分为水平越权和垂直越权。水平越权是同一层级用户访问他人资源,而垂直越权是低权限用户获取高权限操作。用户提到的权限提升可能属于垂直越权。 接下来,用户需要具体的方法步骤。根据引用[4],测试步骤可能包括接口抓取、参数修改、权限验证等。比如,使用普通账号登录后,抓取修改权限的接口,然后替换用户ID或Cookie尝试越权操作。引用[1]中的例子就是普通用户尝试访问修改权限页面,结果被拒绝,这说明系统可能有防护,但测试时需要模拟攻击者绕过这些限制。 然后,要考虑测试工具。引用[4]提到使用Postman或Apifox进行接口测试,这能帮助构造请求,绕过前端验证。比如,用高权限用户的Cookie在工具中发送请求,观察是否成功。 还需要注意测试场景,比如密码重置、数据修改等关键功能。引用[3]中的例子是重置密码接口,通过获取其他用户的userid和接口URL,用攻击者的token执行重置,测试是否成功。这属于水平越权测试。 最后,预防措施方面,引用[2]和[4]提到后端校验、权限控制和日志监控。测试时要验证这些措施是否到位,比如即使修改参数,后端是否会校验用户身份和权限。 用户可能想知道具体的测试步骤和实例,所以需要分点说明,并结合引用中的案例。比如步骤一使用普通账号登录,步骤二抓取接口,步骤三修改参数,步骤四验证结果。同时,要区分水平和垂直越权测试方法,给出实际场景的例子,如修改用户ID或提升角色权限。 可能还需要提醒用户注意安全测试的合法性,避免未经授权的测试。此外,测试后的修复建议也很重要,比如加强后端校验和权限验证机制。</think>### 越权测试方法分步说明 #### 一、测试前准备 1. **权限账号配置** 需准备至少两类账号:普通用户(如$a02$)和高权限用户(如管理员),引用案例中使用普通账号尝试访问受限接口[^1]。 2. **接口抓取工具** 使用浏览器开发者工具或抓包工具(如Burp Suite)捕获目标系统的HTTP请求,重点关注包含用户标识(如`iD=2`)或权限操作的接口[^4]。 #### 二、水平越权测试(同权限层级) 1. **场景示例** 假设用户A(ID=1001)和用户B(ID=1002)均为普通用户,测试用户A能否操作用户B的数据。 2. **测试步骤** - 登录用户A,访问自身数据接口(如`/getData?userId=1001`),抓取请求参数。 - 修改参数为`userId=1002`,重放请求。 - 验证是否返回用户B的数据。若成功,存在水平越权漏洞[^3]。 #### 三、垂直越权测试(跨权限层级) 1. **场景示例** 普通用户尝试执行管理员操作(如修改权限、删除用户)。 2. **测试步骤** - 以普通用户登录,访问高权限功能页面(如`/editUser.asp?iD=2`)。 - 若系统返回无权限提示(如`NoPower`页面),尝试绕过前端限制: - 使用Postman构造请求,替换为管理员Cookie或Token。 - 修改接口参数(如提升角色等级字段`role=admin`)。 - 观察操作是否生效(如权限变更成功)[^4]。 #### 四、关键测试点 1. **参数篡改** 检查接口中用户可控参数(如`iD`、`userId`、`token`),验证后端是否严格校验权限。 2. **权限继承漏洞** 测试低权限账号通过高权限接口的URL直接访问(如`/admin/deleteUser`)的可能性。 3. **越权组合漏洞** 结合CSRF或IDOR漏洞,尝试通过伪造请求提升权限[^2]。 #### 五、修复验证 1. **后端校验** 确保所有敏感操作均校验用户身份和权限,而非依赖前端控制。 2. **权限映射机制** 建立用户-角色-权限的映射表,拒绝未授权的请求[^2]。 ```python # 伪代码示例:后端权限校验逻辑 def edit_user(request, user_id): current_user = get_current_user() if not current_user.has_permission("EDIT_USER") or current_user.id != user_id: return HttpResponse("无操作权限") # 执行修改操作 ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值