返回介绍

6.2 越权测试

发布于 2024-10-11 00:03:32 字数 2490 浏览 0 评论 0 收藏 0

6.2.1 测试原理和方法

越权一般分为水平越权和垂直越权,水平越权是指相同权限的不同用户可以互相访

问;垂直越权是指使用权限低的用户可以访问权限较高的用户。

水平越权测试方法主要是看能否通过 A 用户的操作影响 B 用户。

垂直越权测试方法的基本思路是低权限用户越权高权限用户的功能,比如普通用户可

使用管理员功能。

越权分类如图 6-4 所示。

图 6-4

6.2.2 测试过程

6.2.2.1 水平越权测试

正常更改或查看 A 账户信息,抓包或者更改账户身份 ID,成功查看同权限其他账户业

务信息,如图 6-5 所示。

以某网站后台为例,在核查任务编辑模块时,保存用户任务 ID,如图 6-6 所示。

图 6-5 水平权限测试流程图

图 6-6 任务编辑模块

步骤一:保存任务并抓包,如图 6-7 所示。

图 6-7 业务抓包

步骤二:可以看到请求中有 taskHeader.taskId 这个参数,也许这个参数是提交者的业

务 ID,如果可以更改,能看到别的提交者(如果是同一权限的用户),则这里存在水平

越权的漏洞,现在利用爆破的方式自动更改 taskHeader.taskId,如图 6-8 所示。

图 6-8 更改业务 ID

可以看到爆破自动更改 taskHeader.taskId 的值,响应状态为 200,且响应长度也不一

样,查看响应包成功查看其他用户保存的核查任务,如图 6-9 所示。

图 6-9 更改 ID 后查看同权限用户的业务信息

6.2.2.2 垂直越权测试

登录普通账户 A,抓包或直接更改账户 A 身份 ID 为高权限 C 账户的 ID,成功查看高权

限账户 C 的业务信息,如图 6-10 所示。

图 6-10 垂直越权测试流程图

以某系统后台为例。

步骤一:通过手工猜解得出一个账号密码均为 111 的用户,成功登录,如图 6-11 所

示。

图 6-11 成功登录系统

步骤二:通过查看得知超级管理员账号为 admin。找到“修改密码”这一功能,将密码

改为 789,单击“确定修改密码”后进行抓包,抓包后可以看到两个参数:uid 和 pwd,分别

表示用户名和密码。将参数 uid 的值由 111 改为 admin,码保持 789 不变,如图 6-12 所示。

图 6-12 更改数据包

步骤三:提交修改的数据包,提示密码修改成功,此时 admin 账号的密码已被改成

789,使用 admin 账号登录成功,如图 6-13 所示。

图 6-13 高权限 admin 账户登录成功

6.2.3 修复建议

服务端需校验身份唯一性,自己的身份只能查看、修改、删除、添加自己的信息。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文