扫码领资料
获网安教程
来Track安全社区投稿~
千元稿费!还有保底奖励~(https://bbs.zkaq.cn)
在我最近的一个渗透测试项目中,我发现了在同一个重置密码端点上进行 帐户接管的 3 种方法。
三种方式包括:XFF绕过、resp响应修改、批量匹配
在对应用程序进行一些模糊测试之后,我发现了应用程序上用于重置密码的一处接口。
OTP暴力测试:
通过一些模糊测试,我发现了一个用于重置密码的接口,然后我尝试通过这个接口重置我的密码。
模糊测试提示:通常我会检查应用程序使用哪种编程语言,然后我转到 assetnote 列表并开始使用它进行模糊测试。
选择是否通过电话或电子邮件接收 OTP
我继续并点击发送,并添加了任何 OTP,然后拦截了请求
添加XFF头:
添加X-Forwarded-Host:127.0.0.1
绕过了速率限制,并在每次请求时不断更改标头中的 ip,例如:192.168.1.2、192.168.1.3、...
获取正确的 OTP *不同的响应长度*然后只需知道 ID 或电子邮件即可更改任何帐户的密码。
更改resp响应:
在检查输入错误的 OTP 的响应时,我注意到响应主体只是数字(-10),没有设置或更改任何 cookie 或会话,这意味着您可以轻松修改resp响应。
这里将-10修改为1测试:
会重定向到页面上设置新密码,这意味着设置新密码的逻辑存在错误,导致帐户被接管。
批量匹配:
在重置密码的最后一步设置新密码时,我对参数进行了模糊测试,发现了电子邮件参数。
在网页中添加密码后拦截请求,并添加带有其他用户电子邮件加密值的电子邮件参数,您将能够更改其他用户的密码,然后接管帐户。
这里需要js逆向,得到邮箱的加密值,邮箱和密码的rsa加密值。
添加另一个用户的电子邮件参数(在这种情况下甚至没有检查确认密码参数。
以上内容由白帽子左一翻译并整理。原文:https://medium.com/@asaad0x/how-i-was-able-to-zero-click-account-takeover-with-3-different-ways-on-the-same-reset-password-2d50ecf69b83
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。
原文始发于微信公众号(白帽子左一):三种不同方式的账号接管
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论