zizifn
1
- 貌似Authing console 没有校验oauth state 参数,存在跨站脚本攻击
- 另外貌似安全管理的安全域(cors)不能对app的认证地址(https://***.authing.cn/oidc/auth)生效。
我写了一个简单的html, 可以很轻松的拿到当前用户的oauth code,从而可以在另外机器上,代替用户登录。另外,请在查看html 源码情况下运行。。
https://zizi.press/authingtest.html
潜在的解决方案,
- 校验state参数
- 可以对认证地址(https://***.authing.cn/oidc/auth)加上跨域cors的白名单。
1 个赞
zizifn
3
谢谢,如果这是个问题,或者你们已经重现,请告知。我计划把我server上的测试HTML删除。。
您好,感谢您提出地安全隐患。我是 Authing 的技术负责人,方便加您一下微信吗?想和您沟通一下我的微信号是 18614096952 期待您的回复
我们已经修复了此漏洞,控制台回调地址会对 state 进行校验:
您再试一下。我们目前在 IdP 侧(获取 code 的过程)不会校验安全域,但事实 SP 侧(进入 console 的过程)会对 state 进行校验。进入到 /console/userpool/callback 的时候,如果是伪造请求(没有 state 或 state 为伪造),会提示错误、重新跳转到登录页,防止出现在其他浏览器直接复制链接就能登录的情况。
详情见视频:https://files.authing.co/videos/authing-console-oidc-state-validation.mp4
zizifn
9
没有问题了(但是昨晚真的可以),如果可以,可以问下state,您是存在哪里了吗?我并没有在浏览器的ccookies, storage etc 找到。