第四关 单端点条件竞争
这一关就是修改自己的邮箱地址,修改成carlos@ginandjuice.shop这个邮箱,就自动晋升为管理员了。
提示:1、靶场的电子邮件更改功能包含一个争用条件,使你能够将任意电子邮件地址与你的帐户相关联。
2、地址为 carlos@ginandjuice.shop 的某个人已收到成为站点管理员的待处理邀请,但尚未创建帐户。因此,任何成功声明此地址的用户都将自动继承管理员权限。
3、自己的帐户:wiener:peter。
具体操作:
1、登录进来后,填写要改的邮箱地址,点击更改,点击更改发送之后,就返回生成新邮箱的链接
然后点击邮箱客户端查看生成的链接

2、点击链接激活,完成邮箱更改

然后就跳到页面显示“Your email has been successfully updated”,完成邮箱更改
刷新下页面,邮箱已完成更改

以上就是一个更改邮箱的流程
现在尝试把自己的邮箱改成carlos@ginandjuice.shop这个邮箱,邮件是发送了,但是没有这个人的的邮箱地址:
登录不到这个人的邮箱客户端

接下来看操作
就发两个请求包,一个请求包是自己能够接收到的邮箱地址,另外一个请求包是我们要改成的目标的邮箱地址
把这个提交更改邮箱的POST /my-account/change-email数据包发往repeater

把这个第二请求改成管理员的邮箱地址,对@进行编码为%40
email=carlos%40ginandjuice.shop

我这里发送了第二次并发才成功

刷新浏览器:第二次发送的并发,此时生成的是管理员的邮箱地址

点击链接后,跳转到页面显示的“Your email has been successfully updated”说明更改的邮箱已经完成
此时刷新浏览器,邮箱已经改成管理员的邮箱就可以看到管理界面了,点击管理界面

删除carlos用户,靶场过关

接下来用Turbo插件的方法,测试下
把这个提交更改邮箱地址的POST /my-account/change-email数据包发往Trubo intruder插件


又发现既然这两个请求只有填写的email是不一样的,那就让方法再简单点,那我先把第一个请求改成用占位符表示:email=%s

那么两个请求都写成req1
engine.queue(req1, "carlos@ginandjuice.shop", gate='race1')
engine.queue(req1, "test5%40exploit-0aea008c0495a19a80f39e3c013a00f7.exploit-server.net", gate='race1')

1、这两个请求后面跟三个单引号不要留空格之类的,就这样紧跟着就行
2、请求2随便改个名,比如改成test5%40exploit-0aea008c0495a19a80f39e3c013a00f7.exploit-server.net
3、现在就全部设置好了,点击开始攻击

并发请求发了两次,第二次才成功,已经成功更改为管理员邮箱地址

发送第二次成功重置为管理员的邮箱地址链接

刷新下浏览器,就成功改成管理员的邮箱地址了,也多了一个管理员面板,然后点击管理界面删除carlos用户靶场过关

