原创作者:can1337 [本文摘要]文章主要从一个单页的不同功能进行分别测试,利用到了越权等知识,文章难度较低,适合新手学习。
本文我将分享我在单个功能页面上发现的五个不同的漏洞。本次目标系统是一个学校和学生互通互动的应用程序。它有三种不同的用户模型:教师、学生和家长。
家长只能在学生的个人资料中编辑自己的信息。因此父用户的权限会受到限制。本文的所有报告都将在单个联系页面中从这个角度出发进行描述。
1
绕过前端校验更改地址
当我访问学生个人资料的页面时发现没有权限更改学生的地址等信息,但是Save按钮是处于活动状态,但是点击后并不会发生任何改变,因为所有表单字段已经被锁定。
在这里我使用最简单的绕过方法,即浏览器F12审查元素,如下图所示,将禁用属性删除即可。
然后我填写了信息字段,再点击Save按钮发送请求。
点击Save之后发送成功,确实在页面上可以看到信息已经被更改。
因此我们可以得出结论:保护仅在应用程序的前端。
同样,我们可以使用Burp Suite更改这些信息。
2
越权更改学生信息
家长用户在学生的个人资料中有一些联系信息。但是,他们无法编辑所有这些信息,他们的权限只能编辑某些特定的字段。
例如姓名和地址等信息,但是当我们单击编辑按钮时,只能更改联系人字段。
当我以这种方式发送请求时,我遇到了以下 PUT 请求。
如图所示,还有其他字段无法更改如名称、地址等。
同样我更改了一些信息,例如姓名、地址和关系并发送了请求。
此处我们可以看到所有更改成功提交并且显示界面也发生了变化
3
越权添加家长信息
家长用户只能编辑自己的信息,他们无法添加新的父联系人字段。
但当我发送编辑联系人表的请求时,更改参数中的所有 ID 值,就能够创建新的联系人表。
图片中的请求与第二个报告中的 PUT 请求相同。如图所示,该请求具有许多不同的 ID 值,我用随机值替换了所有 ID 值的最后一位数字。
其实本来是想测试系统会如何处理我这样的更改,预想可能会得到500或者403的回显,但是程序给我创建了一个新的联系人
4
越权更改地址信息
用户无法更改定义的学生地址类型,例如,在下图中,有两个定义的地址供学生和家长用户更改其类型。
当我们尝试将居住地址更改为官方地址时,应用程序将抛出错误,并且我们的请求将无法完成。
我记得第一个报告中的保存按钮对于地址仍然有效。因此,我编辑了一个住宅地址,发送并遇到了以下请求。
我将“postalTitle”参数更改为官方参数。(同样,我可以将其更改为官方地址的住宅。)
在应用程序中,只有一个地址可以是官方地址,但您可以看到两个地址都已更改为主地址。
5
越权删除学生地址
在检查地址类型时,我看到了一些不同的地方,住宅地址的删除按钮处于活动状态,但官方地址没有删除按钮。
住宅地址示例
请注意,虽然“删除”按钮对于住宅地址处于活动状态,但对于官方地址没有这样的按钮。
官方地址示例
因此,我单击了学生的官方地址编辑按钮。我运行了Burp Suite并单击保存按钮。然后,我再次遇到以下请求并复制了“householdID”值。
然后,我回到住宅地址并单击删除按钮,收到请求并将“householdID:”值替换为官方地址 ID,结果就是成功删除。
Security Literature is an open and free platform dedicated to providing translation of global security literature.