文章目录
前言
1.Lab: Unprotected admin functionality
2.Lab: Unprotected admin functionality with unpredictable URL
3.Lab: User role controlled by request parameter
4.Lab:User role can be modified in user profile
5.Lab: User ID controlled by request parameter
6.Lab: User ID controlled by request parameter, with unpredictable user IDs
总结
前言 什么是访问控制
访问控制是对谁或什么有权执行操作或访问资源进行限制。在 Web 应用程序环境中,访问控制依赖于身份验证和会话管理:
- 身份验证可确认用户确实是其所说的身份。
- 会话管理识别同一用户发出了哪些后续 HTTP 请求。
- 访问控制决定用户是否被允许执行他们试图执行的操作。
访问控制失效很常见,而且往往会带来严重的安全漏洞。访问控制的设计和管理是一个复杂而动态的问题,需要将业务、组织和法律约束应用于技术实施。访问控制设计决策必须由人来做出,因此出现错误的可能性很高。
1.Lab: Unprotected admin functionality

转到实验室并robots.txt通过附加/robots.txt到实验室 URL 来查看。请注意,该Disallow行会显示管理面板的路径。

在 URL 栏中,替换/robots.txt为/administrator-panel以加载管理面板。

删除carlos。

实验结束。

2.Lab: Unprotected admin functionality with unpredictable URL

使用 Burp Suite 或 Web 浏览器的开发人员工具查看实验室主页的源代码。

注意它包含一些泄露管理面板 URL 的 JavaScript。
adminPanelTag.setAttribute('href', '/admin-gxbv5a');
加载管理面板并删除carlos。

实验结束:

3.Lab: User role controlled by request parameter

浏览/admin并观察您无法访问管理面板。
进入实验室,点击My account进入登录界面

浏览到登录页面。

输入提示信息登录:
Username:wiener
Password:peter
在 Burp Proxy 中,打开拦截并启用响应拦截,完成并刷新登录页面,并在 Burp 中转发生成的请求。

观察响应是否设置了 cookie Admin=false。将其更改为Admin=true。
第一次:

放包
第二次:

结果:

出现管理面板admin panel。
加载管理面板并删除carlos。
点击admin panel,并开启抓包(我们的管理员权限是在客户端伪造的,虽然可以使用管理员权限,但是服务器知道我们只是普通用户,仅发送与普通用户有关的响应,为了维护我们的管理员权限,我们必须要一直修改cookie Admin=false为Admin=true。)
第一次:

第二次:

结果:

出现删除界面,我们的要求是删除carlos
点击删除并抓包:
第一次修改:

第二次修改:

结果:

Carlos已删除,实验结束。

4.Lab:User role can be modified in user profile
使用提供的凭据登录并访问您的帐户页面。
进入实验室,点击My account进入登录界面

使用提供的功能来更新与您的帐户关联的电子邮件地址。
输入提示信息登录:
Username:wiener
Password:peter

输入email将邮件提交请求发送到 Burp Repeater,"roleid":2在请求体中添加 JSON,然后重新发送。

Update email并开启bp抓包

发送到重放器里, send回显roleid:1

给request修改roleid:2,点击Sentd发送请求。

send观察响应显示你的roleid已更改为 2。

浏览到/admin并删除carlos。
放包发现admin panel管理员面板

点击得到

删除carlos实验结束

5.Lab: User ID controlled by request parameter

使用提供的凭据登录并转到您的帐户页面,请注意,URL 中的“id”参数包含您的用户名。

将请求发送到 Burp Repeater。

将“id”参数更改为carlos,send

放包,检索并提交的 API 密钥carlos

实验结束

6.Lab: User ID controlled by request parameter, with unpredictable user IDs

查找 的博客文章carlos。

点击carlos并观察 URL 包含他的用户 ID。记下这个 ID。

userId=318554ed-0b2c-4024-8570-27544458018b
使用提供的凭据登录并访问您的帐户页面。

bp抓包将“id”参数更改为已保存的用户carlos的ID,send

检索并提交 API 密钥。

实验成功。

