首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Facebook OAuth漏洞导致的Facebook账户劫持

POC Facebook的SDK中,存在一个名为”/connect/ping”的登录服务端,它负责为用户生成一个user_access令牌,并把链接跳转指向一个Facebook应用通用的白名单集“XD_Arbiter...该服务端在Facebook的SDK加载过程中,会首先创建一个方便跨域通信的代理框架(proxy iframe),该代理框架会通过 postMessage() API发回用户token、相关代码和一些未授权或未知的请求状态...为了针对上述Oauth的攻击,在包含进Facebook认证流的同时,需要改装重写我们自己的Custom_SDK.js,如下: var app_id = '124024574287414', app_domain...绕过修复措施 虽然我和Facebook都清楚OAuth的核心服务端“/dialog/oauth/“中,仍然存在携带用户token跳转到page_proxy的情况,而且在上述漏洞报告中我也提醒过他们需要进行修复...另外,在域名“mbasic.facbook.com”下也会发生HTTP 302跳转,且对所有浏览器有效,这就再次和之前的漏洞结合起来了: https://mbasic.facebook.com/dialog

2.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    常识二Oauth2.0介绍及安全防范

    应用中的按钮”通过Facebook登录”(或者其他的系统,如Google或Twitter)。 第二步,当用户点击了按钮后,会被重定向到授权的应用(如Facebook)。...在注册中,客户端应用的拥有者组注册该重定向URI,在注册过程中认证应用也会给客户端应用客户端标识和密码。在URI后追加一个认证码。该认证码代表了授权。...第四步,用户在客户端应用访问网页被定位到重定向的URI。在背后客户端应用连接授权应用,并且发送在重定向请求参数中接收到的客户端标识,客户端密码和认证码。授权应用将返回一个访问口令。...code:表示上一步获得的授权码,必选项。 redirect_uri:表示重定向URI,必选项,且必须与A步骤中的该参数值保持一致。 client_id:表示客户端ID,必选项。...,要获取用户昵称和头像 授权示例 (1) Alice有一个有效的Google帐号; (2) Facebook.com已经在Google Authorization Server上注册了Client身份,

    1.5K40

    挖洞经验 | 利用开放重定向漏洞劫持GitHub Gist账户

    近期,我针对GitHub做了一些安全测试,特别对其不同的CSRF token进行了绕过测试,在此过程中,我顺带研究了urls生成的各种方法函数,希望从中发现用来创建token的相关方法,最后发现了其中的一个开放重定向漏洞...漏洞收获了$10,000的奖励。 漏洞发现 在我测试的urls生成方法中,有一个名为url_for的方法,它通常被用来生成一些与控制器(controller)相关的链接。...一般来说,url_for方法调用需要把添加进额外参数的用户哈希附加到url后,作为一个查询字符串进行查询,但我通过阅读github说明文档发现,在该方法调用实现过程中,存在一些可控的选项参数: :only_path...由于此前我在其它一些应用中见过:protocol、:host选项,以及blacklisted/removed和 :only_path设置为true的实例,但从没见过:script_name选项的使用。...当登录Gist时,在进行OAuth机制的同时会发生以下一大堆的跳转: 1、https://github.com/login/oauth/authorize?

    70520

    从0开始构建一个Oauth2Server服务 回调地址 Redirect URL

    有效的重定向 URL 当您构建表单以允许开发人员注册重定向 URL 时,您应该对他们输入的 URL 进行一些基本验证。 已注册的重定向 URL 可以包含查询字符串参数,但片段中不得包含任何内容。...服务器应拒绝任何重定向 URL 与已注册 URL 不完全匹配的授权请求。 如果客户端希望在重定向 URL 中包含特定于请求的数据,它可以改为使用“state”参数来存储将在用户重定向后包含的数据。...当开发人员将重定向 URL 注册为创建应用程序的一部分时 在授权请求中(授权代码和隐式授权类型) 当应用程序为访问令牌交换授权代码时 重定向 URL 注册 正如创建应用程序中所讨论的那样,该服务应该允许开发人员在创建应用程序时注册一个或多个重定向...授权请求 当应用程序启动 OAuth 流程时,它将把用户定向到您服务的授权端点。该请求将在 URL 中包含多个参数,包括重定向 URL。...服务器需要做的就是检查请求中的重定向 URL 是否与开发人员在注册其应用程序时输入的重定向 URL 之一相匹配。

    63540

    Spring Boot 与 OAuth2

    用FaceBook做单点登录 在本节中,我们创建一个使用Facebook进行身份验证的应用程序。如果我们利用Spring Boot中的自动配置功能,这一过程将相当容易。...在下一节中,我们将为应用程序添加一些基本功能,并且使用户更清楚的看到最初重定向到Facebook时发生的事情。...添加一个欢迎页面 在本节中,我们将修改我们刚刚构建的应用程序,通过添加一个显式的链接登录Facebook。新的链接不会立即被重定向,而是可以在主页上看到,用户可以选择登录或不经过身份验证。...一旦你通过身份验证,你会被重定向回到本地的应用程序,本地应用将会显示你的名字(假设你已经在Facebook上设置了允许访问这些数据的权限)。...客户端是可重用的,因此你还可以使用它与你的授权服务器(在本例中是Facebook)提供的OAuth2资源进行交互(在本例中为Graph API)。

    10.6K120

    OAuth 2.0初学者指南

    OAuth2方式:如果应用需要访问其用户数据,Funapp会将用户重定向到Facebook上的授权页面。...为了获得访问令牌,FunApp将用户重定向到Facebook的登录页面。成功登录后,Facebook会重定向到redirect_uri(在步骤4中注册)以及短期授权代码。...访问令牌用于访问用户的数据。这是OAuth2中最受欢迎的流程,称为授权代码授权。以下是在授权代码授权中获取访问令牌的序列图: ? 6....iv)客户端凭据:当客户端本身拥有数据且不需要资源所有者的委派访问权限,或者已经在典型OAuth流程之外授予应用程序委派访问权限时,此授权类型是合适的。在此流程中,不涉及用户同意。...7.令牌已过期,获取新的访问令牌: 如果访问令牌由于令牌已过期或已被撤销而不再有效,则使用OAuth 2.0访问令牌进行API调用可能会遇到错误。在这种情况下,资源服务器将返回4xx错误代码。

    2.5K30

    【ChatGPT插件漏洞三连发之一】未授权恶意插件安装

    漏洞要了解第一个漏洞,我们必须首先向您展示 OAuth 身份验证的工作原理:假设您是 Dan,并且您想使用您的 Facebook 帐户连接到 Example.com。...在步骤 2-3 中:在 Dan 单击“使用 Facebook 登录”后,www.example.com 打开一个新窗口,指向以下地址:https://www.facebook.com/v3.0/dialog...=token在步骤 4-5 中:Facebook 为 www.example.com 准备一个令牌,并将浏览器重定向回redirect_uri(步骤 2 中的参数)。...确切的重定向:https://www.example.com/OAuth#token=[secret_token]在步骤 6-7 中:www.example.com 从 URL 中读取令牌,并使用它来直接与...用户在ChatGPT中写入的任何消息都可以转发到插件。听起来很熟悉?这与 www.example.com 的 OAuth 图相同。

    7510

    Web Hacking 101 中文版 十三、子域劫持

    这个 APP 将用户重定向到 Facebook API 来授予权限。 Facebook API 向用户提供代码并将其重定向到 APP。...这个流程中,你会注意到用户在哪儿都不需要向访问它们账户的 APP 提供他们的 Facebook 用户名和密码。这也是个概览,这里也可能出现很多其他事情,包括可以在流程中交换的额外信息。...这里有一个重大漏洞,Facebook 在 #5 中向应用提供访问 Token。...APP 的列表课在https://www.facebook.com/search/me/apps-used上获取。...重要结论 我觉得你可能想知道,为什么这个例子会包含在这本书的这个章节。对我来说,最重要的结论就是。要考虑到在渗透过程中如何利用一些遗留资源。在这一章的上一个例子中,DNS 指向了不再继续使用的服务。

    1.2K40

    Oauth协议介绍与安全隐患

    客户端"登录授权层所用的令牌(token),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围和有效期。..."客户端"登录授权层以后,"服务提供商"根据令牌的权限范围和有效期,向"客户端"开放用户储存的资料。 图解Oauth协议 OAuth 2.0的运行流程如下图,摘自RFC 6749。 ?...C步骤中,服务器回应客户端的URI,包含以下参数: code:表示授权码,必选项。该码的有效期应该很短,通常设为10分钟,客户端只能使用该码一次,否则会被授权服务器拒绝。...code:表示上一步获得的授权码,必选项。 redirect_uri:表示重定向URI,必选项,且必须与A步骤中的该参数值保持一致。 client_id:表示客户端ID,必选项。 例子: ?...7 对oauth_callback参数进行有效性校验。

    1.4K00

    小而全的第三方登录开源类库,开箱即用!

    大家好,我是不才陈某~ JustAuth,如你所见,它仅仅是一个第三方授权登录的工具类库,它可以让我们脱离繁琐的第三方登录 SDK,让登录变得 So easy!...JustAuth 集成了诸如:Github、Gitee、支付宝、新浪微博、微信、Google、Facebook、Twitter、StackOverflow 等国内外数十家第三方平台。...功能 丰富的 OAuth 平台: 集成国内外数十家第三方平台,实现快速接入。 自定义 state: 支持自定义 State 和缓存方式,开发者可根据实际情况选择任意缓存插件。...自定义 OAuth: 提供统一接口,支持接入任意 OAuth 网站,快速实现 OAuth 登录功能。更容易适配自有的 OAuth 服务。...sql 中取配置也可以从配置文件中取配置 return AuthConfig.builder() .clientId("clientId")

    24010

    Spring Boot2.0 Oauth2 服务器和客户端配置及原理

    三、OAuth的思路 OAuth在"客户端"与"服务提供商"之间,设置了一个授权层(authorization layer)。"...客户端"登录授权层所用的令牌(token),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围和有效期。...(D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。...所有步骤在浏览器中完成,令牌对访问者是可见的,且客户端不需要认证。 它的步骤如下: (A)客户端将用户导向认证服务器。 (B)用户决定是否给于客户端授权。...可以看到暴露了/oauth/token接口 Spring-Security-Oauth2的提供的jar包中内置了与token相关的基础端点。

    3.9K30

    小而全的第三方登录开源类库,开箱即用!

    JustAuth,如你所见,它仅仅是一个第三方授权登录的工具类库,它可以让我们脱离繁琐的第三方登录 SDK,让登录变得 So easy!...图片 JustAuth 集成了诸如:Github、Gitee、支付宝、新浪微博、微信、Google、Facebook、Twitter、StackOverflow 等国内外数十家第三方平台。...功能 丰富的 OAuth 平台: 集成国内外数十家第三方平台,实现快速接入。 自定义 state: 支持自定义 State 和缓存方式,开发者可根据实际情况选择任意缓存插件。...自定义 OAuth: 提供统一接口,支持接入任意 OAuth 网站,快速实现 OAuth 登录功能。更容易适配自有的 OAuth 服务。...sql 中取配置也可以从配置文件中取配置 return AuthConfig.builder() .clientId("clientId")

    25710

    隐藏的OAuth攻击向量

    (通过登录表单提交或任何其他方式) 请求用户同意与外部方共享数据 将用户重定向回外部方(使用参数中的代码/令牌) 在我们看到的许多OAuth服务器实现中,这些步骤是通过使用三个不同的控制器来分隔的,例如...最明显的方法是: 在会话中存储"client_id "和"redirect_uri" 参数 在HTTP查询参数中为每个步骤传递这些参数,这可能需要对每个步骤进行有效性检查,验证程序可能不同 创建一个新的..."redirectUri"与第二个请求中的"redirectUri"之间的预期差异,这是有意的,因为第一个是有效的OAuth参数,而第二个是实际绑定到"AuthorizationRequest.redirectUri...,攻击不仅限于提取用户属性,还可以用于提取用于令牌签名的有效会话令牌或私钥~ 同样,此漏洞存在于OpenAm服务器的标准OpenID组件中,不需要任何身份验证,我们在OpenAM的最新开源版本中发现了此漏洞...,请参阅OPENAM-10135)~ 文末总结 OAuth和OpenID连接协议非常复杂,有许多移动部件和扩展,如果在网站上测试OAuth授权流,可能只会看到支持的参数和可用端点的一小部分,虽然Facebook

    2.9K90

    OAuth 2.0 极简教程 (The OAuth 2.0 Authorization Framework)

    客户端"登录授权层所用的令牌(token),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围和有效期。..."客户端"登录授权层以后,"服务提供商"根据令牌的权限范围和有效期,向"客户端"开放用户储存的资料。 名词解释 在详细讲解OAuth 2.0之前,需要了解几个专用名词。...A步骤中,客户端申请认证的URI,包含以下参数: response_type:表示授权类型,必选项,此处的值固定为"code" client_id:表示客户端的ID,必选项 redirect_uri:表示重定向...该码的有效期应该很短,通常设为10分钟,客户端只能使用该码一次,否则会被授权服务器拒绝。该码与客户端ID和重定向URI,是一一对应关系。...code:表示上一步获得的授权码,必选项。 redirect_uri:表示重定向URI,必选项,且必须与A步骤中的该参数值保持一致。 client_id:表示客户端ID,必选项。 下面是一个例子。

    3K20

    详解JWT和Session,SAML, OAuth和SSO,

    例如当你调用 GoogleAPI 时,需要带上有效 token 来表明你请求的 合法性。...IDP 向 SP 返回 token, 并且将 用户重定向 到 SP ( token 的返回是在 重定向步骤 中实现的,下面会详细说明)。...当用户在 IDP 登陆成功之后, IDP 需要将用户 再次重定向 到 SP 站点,这一步通常有两个办法: HTTP 重定向:这并不推荐,因为 重定向 的 URL 长度 有限制,无法携带更长的信息,比如...所以你在使用 Facebook 或者 Gmail 账号登陆第三方站点时,会出现 授权对话框,告诉你 *第三方站点 可以访问你的哪些信息,需要征得你的同意。 ?...它仅仅是为你的 合法身份 背书,当你以 Facebook 账号登陆某个站点之后,该站点 无权访问 你的在 Facebook 上的 数据。

    3.3K20

    深入理解OAuth 2.0:原理、流程与实践

    在现代网络环境中,用户的数据通常分散在不同的网络服务中,如何安全、有效地进行数据访问和分享,是一个重要的问题。...刷新令牌(Refresh Token): 刷新令牌是授权服务器在发放访问令牌时一同发放的一个凭证,用于在访问令牌过期后获取新的访问令牌。刷新令牌通常有较长的有效期,甚至可以设置为永不过期。...下图是授权码模式中OAuth 2.0 授权流程(上文OAuth 2.0 的步骤B)的展开 (A)Client先将页面重定向Authorization Server的授权页;重定向是需要携带授权完毕后要重新打开的页面...使用OAuth 2.0进行第三方登录 第三方登录是OAuth 2.0的一个常见应用场景。用户可以使用他们在Google,Facebook等服务提供商上的账号,直接登录第三方应用,无需注册新的账号。...常见问题和解决方案 在实践OAuth 2.0时,可能会遇到一些问题,例如重定向URI的匹配问题,访问令牌的过期问题,刷新令牌的使用问题等。

    13.8K45

    什么是OAuth 2.0?深度解析OAuth 2.0的工作原理和应用场景

    今天,我们将深入探讨一个重要的主题——OAuth 2.0。你可能曾听说过OAuth,但它到底是什么,它又有哪些部分,以及它在现代应用程序中的作用是什么?...OAuth 2.0,全名为“开放授权2.0”(Open Authorization 2.0),是一种开放标准的授权协议,用于授权一个应用程序或服务访问用户在另一个应用程序中的资源,而无需提供用户名和密码...这是为了验证客户端的身份,并确保安全性。 2. 重定向用户 客户端将用户重定向到授权服务器,以请求授权。用户将在授权服务器上登录并授权客户端访问他们的资源。 3....授权服务器验证授权代码,如果有效,颁发访问令牌。 5. 访问资源 客户端使用访问令牌来请求资源服务器上的受保护资源。资源服务器验证令牌,如果有效,提供资源。...第四部分:OAuth 2.0的应用场景 OAuth 2.0广泛应用于各种场景,以下是一些常见的应用场景: 社交登录:用户可以使用他们的社交媒体帐户登录到其他应用程序,例如使用Google或Facebook

    6.6K40
    领券