前言
Burp
上线新的靶场啦~但是外国人都好卷,白天没时间玩,目前第十三名
Lab: Single-endpoint race conditions
将具有不同值的并行请求发送到单个端点点有时会触发强大的条件竞争
考虑一种密码重置机制,该机制将用户 ID 和重置令牌存储在用户的会话中。
在这种情况下,从同一会话发送两个并行密码重置请求,但使用两个不同的用户名,可能会导致以下冲突:
请注意所有操作完成后的最终状态:
session['reset-user'] = victim
session['reset-token'] = 1234
电子邮件地址确认或任何基于电子邮件的操作通常是单端点的良好目标。在服务器向客户端发出 HTTP 响应后,电子邮件通常在后台线程中发送,这使得竞争情况更有可能发生。
此实验室的电子邮件更改功能包含一个争用条件,使你能够将任意电子邮件地址与帐户关联。
拥有[email protected]
地址的用户已收到成为站点管理员的待处理邀请,但他们尚未创建帐户。因此,任何成功声明此地址的用户都将自动继承管理员权限。
要解决实验室问题,请执行以下操作:
确定允许您声明任意电子邮件地址的争用条件。
将您的电子邮件地址更改为[email protected]
。
访问管理面板。
删除carlos
用户
您可以使用以下凭据登录到自己的帐户:wiener:peter
。
您还可以访问电子邮件客户端,您可以在@exploit-<YOUR-EXPLOIT-SERVER-ID>.exploit-server.net
中查看发送到地址的所有电子邮件。
访问对应靶场界面
https://portswigger.net/web-security/race-conditions/lab-race-conditions-single-endpoint
启动靶场
这是’SHOP
‘类型的网站,具有登录功能
根据实验要求需要首先登录,尝试将自己的邮箱修改成管理员邮箱
发现如果要更改邮箱还要去本邮箱进行确认
成功在自己的邮箱中发现了修改链接
从总体来看,更改邮箱 → 发送信息验证 → 更改邮箱
用过一次的邮箱再次点击可以发现已经失效了,推测这里可能存在碰撞
尝试利用发送更改邮箱端点进行多邮箱发送,利用顺序结构发送了5份邮件
对应存在5份邮箱
使用链接时发现,只有最后一份EEE
的邮箱才是有效的
接下来尝试用枚举的方式并行发送,发现邮箱并不是按照规律发送
收件人地址并不总是与挂起的新电子邮件地址匹配
考虑到网站发送邮箱处可能存在一个条件竞争的可能性
推断,当邮箱处理正常发送时,使用了并行条件竞争,会导致确认电子邮件发送到错误的地址
通过条件竞争,成功收到了来自其他邮箱的重置信息
点击之后成功修改了邮件
删除用户完成实验
★
欢 迎 加 入 星 球 !
代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员
进成员内部群
星球的最近主题和星球内部工具一些展示
加入安全交流群
关 注 有 礼
还在等什么?赶紧点击下方名片关注学习吧!
推荐阅读