我是如何在Periscope管理面板中绕过Google认证的

安全 应用安全
Periscope是一个属于Twitter的iOS/Android应用,主要用于现场直播。通过一个基于WEB的管理面板管理着数百万的用户,你可以通过访问admin.periscope.tv获悉。

Periscope是一个属于Twitter的iOS/Android应用,主要用于现场直播。通过一个基于WEB的管理面板管理着数百万的用户,你可以通过访问admin.periscope.tv获悉。

当你浏览站点,所有的请求都讲重定向到/auth?redirect=/(这是由于我们没有一个有效的会话),进而重定向到谷歌身份验证

我是如何在Periscope管理面板中绕过Google认证的

 

重定向后的URL如下所示,包含各种参数。最有趣的还是.hd这是用来限制登录到特定域,在我们这个案例中为bountyapp.co

https://accounts.google.com/o/oauth2/auth?access_type=
&approval_prompt=
&client_id=57569323683-c0hvkac6m15h3u3l53u89vpquvjiu8sb.apps.googleusercontent.com&hd=bountyapp.co&redirect_uri=https%3A%2F%2Fadmin.periscope.tv%2Fauth%2Fcallback
&response_type=code
&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplus.login+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile
&state=%2FStreams

我们尝试使用test@gmail.com账户进行登录操作,接着我们将重定向到用户选择页面,再次尝试操作依旧重定向到该页面。

我是如何在Periscope管理面板中绕过Google认证的

 

然而,我们可以简单的移除这个参数。在URL中没有签名来阻止我们进行修改,该应用的主要任务就是验证返回的token。

这提供给我们以下的URL(你可能会注意到我已经将Google+范围删除了,这是由于测试并没有进行注册的原因)

https://accounts.google.com/o/oauth2/auth?access_type=
&approval_prompt=
&client_id=57569323683-c0hvkac6m15h3u3l53u89vpquvjiu8sb.apps.googleusercontent.com
&redirect_uri=https%3A%2F%2Fadmin.periscope.tv%2Fauth%2Fcallback
&response_type=code
&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile
&state=%2FStreams

浏览器转到这个新的页面,提示我们进行应用授权

我是如何在Periscope管理面板中绕过Google认证的

 

单击“Accept”按钮之后,重定向连接回到管理面板,以下信息可作为参考

我是如何在Periscope管理面板中绕过Google认证的

 

这里可以有应用交换访问token的代码,从白名单中验证返回的用户ID,或者至少会验证这个域为bountyapp.co

但是在本案例中,假设我们作为该公司员工使用@bountyapp.co后缀的邮箱成功登录。所请求的userinfo.profile许可不包含用户的电子邮箱地址,所以应用程序是不能对它进行验证的。

至此,我们便获得了管理后台。

我是如何在Periscope管理面板中绕过Google认证的

在这里我们便能够看到许多的东西了——用户以及各种信息流。

修复方案

Twitter对这个BUG进行了两处修改。***个便是在请求中增加了额外的许可

https://www.googleapis.com/auth/userinfo.email

第二个就是修正用户回调的验证,现在尝试使用一个无效的用户进行身份验证只会返回一个401页面

HTTP/1.1 401 Unauthorized
Content-Type: text/html; charset=utf-8
Location: /Login
Strict-Transport-Security: max-age=31536000; preload
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Xss-Protection: 1; mode=block
Content-Length: 36
<href="/Login">Unauthorized</a>.
责任编辑:蓝雨泪 来源: FreeBuf
相关推荐

2015-08-10 14:56:31

Google

2009-08-27 10:20:14

思科认证CCNA准备

2020-06-28 08:34:07

架构师阿里软件

2016-11-21 15:08:38

Leader工程师团队管理

2012-09-10 10:45:21

编程自学编程如何编程

2018-10-08 09:35:59

2018-01-16 16:01:10

Google Chro手动位置

2018-09-11 11:40:56

Windows 10Windows控制面板

2017-12-07 17:30:02

数据库SQL Server优化查询

2020-05-25 07:00:00

双因素认证身份认证密码

2021-04-25 08:43:30

管理前端后端

2019-10-30 14:20:44

Windows 10VPNWindows

2019-09-16 13:48:03

Linux管理日志

2017-01-11 16:41:16

Linux设备文件文件系统

2014-11-10 09:29:13

Google

2017-02-16 19:09:56

Kali LinuxGoogle Chro浏览器

2015-10-28 10:31:27

微服务DevOps架构设计

2015-08-03 16:01:49

Ubuntu应用

2022-10-27 08:13:51

管理虚拟机Cockpit

2012-06-27 10:16:12

开源项目CodePlex
点赞
收藏

51CTO技术栈公众号