背景介绍
本文分享一个通过开发者疏忽在前端或服务器响应信息中泄露验证信息、代码,从而导致任意用户接管的真实案例。话不多说,进入正题。
发现经过
注册新用户时,相信有经验的同学都会检查服务器的响应包,尤其是响应包中包含有电子邮件验证相关的代码。
因为通过此类响应包信息,有时候可以轻松快速的绕过电子邮件验证过程,甚至无需任何用户交互,比如下面的注册页面:
首先我们使用电子邮件注册一个账户,然后检查Burp中的请求与响应包信息,查看是否有‘泄露’的信息或代码。
然后转到注册用户时的收件箱,在验证URL链接中搜索是否存在上面’泄露‘的信息或代码,如果恰好存在同样的信息或代码,那么恭喜你。
假设,我们收到的验证URL类似下面这样:
https://target.com/verification/<泄露的验证代码>
那么我们就可以利用一开始在请求/响应包中‘泄露’的信息或代码接管任意用户。
现实中,无论是赏金项目还是公共项目,依然有很多Web或APP中存在此类漏洞。
有时候为了提高漏洞影响,我们还可以尝试使用admin@target.com的管理员邮箱进行注册、接管,然后访问具有更高权限的功能,在这些更高权限的功能中,往往会发现更加严重的漏洞,如getshell、RCE等。
你学废了么?