前言
Burp
上线新的靶场啦~但是外国人都好卷,白天没时间玩,目前第十三名
🦄单端点竞争-通过邮箱重置密码
Lab: Single-endpoint race conditions
🚀实验前置必要知识点
将具有不同值的并行请求发送到单个端点点有时会触发强大的条件竞争
考虑一种密码重置机制,该机制将用户 ID 和重置令牌存储在用户的会话中。
在这种情况下,从同一会话发送两个并行密码重置请求,但使用两个不同的用户名,可能会导致以下冲突:
请注意所有操作完成后的最终状态:
session['reset-user'] = victim
session['reset-token'] = 1234
电子邮件地址确认或任何基于电子邮件的操作通常是单端点的良好目标。在服务器向客户端发出 HTTP 响应后,电子邮件通常在后台线程中发送,这使得竞争情况更有可能发生。
🏆实验要求
此实验室的电子邮件更改功能包含一个争用条件,使你能够将任意电子邮件地址与帐户关联。
拥有carlos<span class="label label-primary">@ginandjuice.shop
地址???用户已收到成为站点管理员的待处理邀请,但他们尚未创建帐户。因此,任何成功声明此地址的用户都将自动继承管理员权限。
要解决实验室问题,请执行以下操作:
- 确定允许您声明任意电子邮件地址的争用条件。
- 将您的电子邮件地址更改为
carlos<span class="label label-primary">@ginandjuice.shop
。 - 访问管理面板。
- 删除
carlos
用户
您可以使用以下凭据登录到自己的帐户:wiener:peter
。
您还可以访问电子邮件客户端,您可以在<span class="label label-primary">@exploit-.exploit-server.net
中查看发送到地址???所有电子邮件。
⚡️渗透开始
- 访问对应靶场界面
https://portswigger.net/web-security/race-conditions/lab-race-conditions-single-endpoint
- 启动靶场
1. 站点分析
这是’SHOP
’类型的网站,具有登录功能
根据实验要求需要首先登录,尝试将自己的邮箱修改成管理员邮箱
发现如果要更改邮箱还要去本邮箱进行确认
尝试修改AAA<span class="label label-primary">@exploit-0a3200ce0328621681ff1070012000ac.exploit-server.net
#CTL{n}#CTL{n}成功在自己???邮箱中发现了修改链接
2. 寻找可疑功能点(查看Burp历史记录进行分析)
从总体来看,更改邮箱 → 发送信息验证 → 更改邮箱
3. 预测潜在碰撞
用过一次的邮箱再次点击可以发现已经失效了,推测这里可能存在碰撞
4.行为进行基准测试
尝试利用发送更改邮箱端点进行多邮箱发送,利用顺序结构发送了5份邮件
对应存在5份邮箱
使用链接时发现,只有最后一份EEE
的邮箱才是有效的
接下来尝试用枚举的方式并行发送,发现邮箱并不是按照规律发送
收件人地址并不总是与挂起的新电子邮件地址匹配
考虑到网站发送邮箱处可能存在一个条件竞争的可能性
推断,当邮箱处理正常发送时,使用了并行条件竞争,会导致确认电子邮件发送到错误的地址
5.证明概念
通过条件竞争,成功收到了来自其他邮箱的重置信息
点击之后成功修改了邮件
删除用户完成实验