实验5:由请求参数控制的用户ID
信息:
本实验的用户帐户页面上存在一个横向权限提升漏洞。
要解决实验问题,获取用户carlos的API密钥并将其作为解决方案提交
已有账号:wiener:peter
part1:
使用已有账号登陆
分析HTTP历史记录中数据包,无特殊参数
再次点击My account
分析数据包,URL在“id”参数中包含用户名
part2:
发送请求到repeater,将“id”参数更改为carlos
检索并提交卡洛斯的API密钥
实验6:用户ID由请求参数控制,用户ID不可预测
信息:
这个实验室在用户账户页面上有一个水平的权限提升漏洞,但是用 GUID 来识别用户
已有账号:wiener:peter
part1:
找一篇 Carlos 的博文。
单击 Carlos 并观察 URL 包含他的用户 ID。记下这个 ID。
part2:
使用已有账号登录并访问
wiener:peter
登陆后再次点击My account,分析数据包
part3:
完成实验
将“ ID”参数更改为保存的用户 ID。检索并提交 API 密钥。
如果卡住,就刷新一下页面
实验7:用户ID由请求参数控制,重定向时发生数据泄漏
该实验室包含一个访问控制漏洞,其中敏感信息在重定向响应的主体中泄露。
要解决该实验室的问题,获取用户 Carlos 的 API 密钥,并将其作为解决方案提交。
已有账号:wiener:peter
part1:
使用提供的凭据登录并访问您的帐户页面。
再次点击My account,分析数据包
发现通过参数名传参的参数
part2:
发送到bp的repeater
将“ id”参数更改为 Carlos
(虽然响应现在将重定向到主页,但是它有一个主体,其中包含属于 Carlos 的 API 密钥)
提交 API 密钥
6、横向到纵向权限提升
1、危害:一般水平权限提升攻击可以通过危害更高权限的用户而转变为垂直权限提升。如横向升级可能允许攻击者重置或捕获属于其他用户的密码。如果攻击者以管理用户为目标并危害其帐户,则他们可以获得管理访问权限,从而执行垂直权限提升。
如攻击者可能能够使用已经描述的横向权限提升的参数篡改技术获得对另一个用户帐户页的访问权限:
https://insecure-website.com/myaccount?id=456
如果目标用户是应用程序管理员,则攻击者将获得对管理帐户页的访问权限。此页可能会泄漏管理员密码或提供更改密码的方法,或者可能提供对特权功能的直接访问。
2、涉及实验:
实验8:用户ID由密码泄露的请求参数控制
实验8:用户ID由密码泄露的请求参数控制
这个实验室有一个用户账户页面,其中包含当前用户的现有密码,预先填写了一个掩码输入
要解决这个实验室,检索管理员的密码,然后用它来删除 Carlos。
已有账号:wiener:peter
part1:
使用提供的凭据登录并访问用户帐户页面。
发现页面会包含自己密码,再次点击My account,分析数据包
发现通过参数名传参的参数
part2:
发送到repeater
将 URL 中的“ id”参数更改为管理员,并找到管理员密码
part3:
登陆管理员账户,删除 Carlos
iq8szu44yky140pdvu4b
7、不安全的直接对象引用
1、不安全直接对象引用(IDOR)是访问控制漏洞的一个子类。当应用程序使用用户提供的输入直接访问对象,并且攻击者可以修改输入以获得未经授权的访问时,就会出现IDOR。它因出现在OWASP 2007 Top Ten中而流行,尽管它只是许多可能导致绕过访问控制的实现错误中的一个例子
2、涉及实验:
实验9:不安全的直接对象引用
实验9:不安全的直接对象引用
这个实验室将用户聊天记录直接存储在服务器的文件系统中,并使用静态 URL 检索它们。
找到用户 Carlos 的密码,登陆他们的账户,解决实验室
part1:
选择 Live chat 选项卡。发送一条消息,然后选择 View transcript。
再次点击
分析HTTP历史记录
检查 URL 并观察到文本是分配给文件名的文本文件,其中包含一个递增的数字。
part2:
将文件名更改为1.txt 并查看文本
注意聊天记录中的密码。
part3:
返回到主实验室页面,并使用被盗凭证登录。
carlos jsj56afvshbm5ozfl4qg
8、多步骤流程中的访问控制漏洞
1、许多网站通过一系列步骤实现重要功能。当需要捕获各种输入或选项时,或者当用户需要在执行操作之前查看和确认细节时,通常会执行此操作。
如更新用户详细信息的管理功能可能涉及以下步骤: 1、加载包含特定用户详细信息的表单。 2、提交更改 3、查看更改并确认。
2、有时网站会对其中一些步骤实施严格的访问控制,但忽略其他步骤。如假设访问控制已正确应用于第一步和第二步,但未应用于第三步。实际上,网站假设用户只有在他们已经完成了被适当控制的第一步骤的情况下才将到达步骤3。在这里,攻击者可以跳过前两个步骤,直接提交包含所需参数的第三个步骤的请求,从而获得对函数的未授权访问。
3、涉及实验:
实验10:多步骤流程,其中一个步骤没有访问控制
实验10:多步骤流程,其中一个步骤没有访问控制
这个实验室有一个管理面板,它有一个有缺陷的改变用户角色的多步骤过程(可以通过使用凭据administrator: admin 登录来熟悉管理面板)
要解决实验室问题,使用凭据 wiener: peter 登录,并利用存在缺陷的访问控制来提升自己成为管理员
part:
使用管理凭据登录
浏览到管理面板,提升carlos,并将确认 HTTP 请求发送到bp的repeater
流程一:
流程二:
part2:
打开一个私有/匿名浏览器窗口,并使用非管理员凭证登录。
获取非管理员cookie
part3:
将非管理员用户的会话 cookie 复制到现有的转发请求中,将用户名更改为已有的用户名,然后重放
流程一:(会有鉴权)
提示未经授权
流程二:(提权成功)
302跳转和原始数据一致
9、基于引用的访问控制
1、原理:某些网站基于访问控制Referer HTTP请求中提交的标头。该Referer浏览器通常会在请求中添加一个标头,以指示发起请求的页面。
2、示例:如假设某个应用程序在主管理页上强制实施访问控制/admin,但对于子页面,如/admin/deleteUser用户只检查了Referer标题。如果Referer标头包含主/admin URL,则允许该请求。
3、利用:在这种情况下,由于Referer头可以完全由攻击者控制,他们可以伪造对敏感子页的直接请求,提供所需的Referer头,从而获得未经授权的访问
4、涉及实验:
实验11:基于引用的访问控制
实验11:基于引用的访问控制
这个实验根据 Referer 头控制对某些管理功能的访问(可以通过使用凭据administrator: admin 登录来熟悉管理面板)
要解决实验室问题,使用凭据 wiener: peter 登录,并利用存在缺陷的访问控制来提升自己成为管理员
part1:
使用管理凭据登录
浏览到管理面板,提升 Carlos
然后将 HTTP 请求发送到BP的repeater
part2:
打开一个私有/匿名浏览器窗口,并使用非管理员凭证登录
wiener: peter
在/admin-role?Username = carlos & action = update请求中,如果缺少 Referer 头,请求被视为未授权
将非管理员用户的会话 cookie 复制到现有的 Burp Repeater 请求中,将用户名更改为已有的,然后重放
和原有数据一样进行了跳转
10、基于位置的访问控制
1、一些网站基于用户的地理位置对资源实施访问控制。如这可以应用于州立法或业务限制适用的银行应用或媒体服务。这些访问控制通常可以通过使用Web代理、VPN或操纵客户端地理定位机制来规避。