SOP(同源策略)绕过漏洞:Keybase的CORS策略错误配置,可以操纵浏览器缓存获取用户敏感数据信息
摘要:由于通过CORS(跨域资源共享)机制启用了Keybase io使用的多个API端点,这种缓解同源策略的机制在某种程度上克服了同源策略的严格限制,允许不同域服务器实施交互式请求。
由于通过CORS(跨域资源共享)机制启用了Keybase.io使用的多个API端点,这种缓解同源策略的机制在某种程度上克服了同源策略的严格限制,允许不同域服务器实施交互式请求。 Keybase的CORS策略配置错误。 使用此缺陷,可以操纵浏览器缓存来获取用户敏感的数据信息。
Keybase是一个开放源代码,跨平台的即时消息工具,它支持PC设备上的macOS,Linux和Windows平台,并提供Chrome / Firefox浏览器扩展。 也适用于iOS和Android。 与许多IM 工具相比,Keybase最吸引人的功能是它可以免费使用,并且不会受到任何广告骚扰。 最重要的是,它也是一个开源项目。
在安全性和隐私性方面,Keybase使用端到端加密,并承诺为每个用户的组,文件和聊天数据提供安全保护。 如果此数据上传到云,它也将被加密。
前言
当前用户向其他用户发送加密消息时,Keybase允许当前用户通过API接口找到其他Keybase用户。 此接口提供例如公共密钥和发送加密消息所需的其他Keybase用户信息。
该API接口的CORS(跨域资源共享)策略配置如下:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Access-Control-Allow-Credentials: false
在理解此CORS配置问题之前,让我们澄清一些要点:
1. Access-Control-Allow-Origin中的星号“ *”表示任何外部域名都可以与API交互并执行跨域请求调用;
2. Access-Control-Allow-Credentials中的“ false”描述,出于安全原因,服务器不允许用户在跨域请求中包括代表身份信息的cookie。 这里的Access-Control-Allow-Headers公开的用户身份验证标头信息与下面将描述的漏洞无关,因为在查询上述API接口时未使用该信息。
漏洞情况
自然地,由于上述可查询的API接口是公共的,因此在进行跨域请求时,无需携带令牌信息来防止CSRF(跨站点请求伪造),因为使用Keybase.io以及其会话时对用户进行了身份验证 信息存储在cookie中。 仅某些非常敏感的API接口将要求用户身份验证标头token包含在请求标头中。
如果在消息加密验证和发送过程中使用API查找其他Keybase用户以找到自己,即使我只输入首字母,我的某些帐户信息也会在搜索结果中匹配, 其中包含我的一些敏感信息,例如:
电子邮件地址
我使用并保留的邀请代码数
计费信息
上次登录的时间戳,电子邮件中的时间/日期验证码
TripleDes加密的PGP私钥
经过测试后,在上述API请求中删除了Cookie信息后,个人敏感信息将不再显示。 但是在服务器对API的响应消息中找到了名为“ Etag”的消息标头。 这是浏览器缓存标签头,这意味着客户端的资源请求没有更改,因此浏览器可以下载请求以检索缓存的内容并响应用户。
Payload和漏洞利用
Twitter用户@Bitk_使用了一种技巧,该技巧使用javascript的fetch API方法直接从浏览器缓存中强制执行跨域请求,并且碰巧Keybase在此处未在服务器响应标头上部署任何缓存控制头(Cache-Control)措施,因此在本地构造了以下Payload
<html>
<script>
var url = "https://keybase.io/_/api/1.0/user/lookup.json?username={YOUR_USERNAME}";
fetch(url, {
method: 'GET',
cache: 'force-cache'
});
</script>
</html>
如果上面的有效负载请求可以成功执行,它可能会返回一些缓存的Keybase信息。 基于此,执行了身份验证请求,并最终返回了一些与帐户有关的个人敏感信息。 如下:
为了确认有效载荷是否已成功执行,您可以从下图中的浏览器请求信息中看到,fetch方法直接从浏览器缓存中读取身份信息。
相关热词搜索:SOP(同源策略)绕过漏洞 Keybase 操纵浏览器缓存 获取用户敏感数据信息
上一篇:CVE-2017-11882缓冲区漏洞实验复现:可执行非授权命令、执行恶意shellcode等高危攻击操作
下一篇:CVE-2019-0708 漏洞(远程桌面服务远程执行代码漏洞)的复现及测试
人机验证(Captcha)绕过方法:使用Chrome开发者工具在目标网站登录页面上执行简单的元素编辑,以实现Captcha绕过
牛创网络: " 人机身份验证(Captcha)通常显示在网站的注册,登录名和密码重置页面上。 以下是目标网站在登录页面中排列的验证码机制。 从上图可以
2020-01-26 12:44:09 )8872( 亮了
自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
牛创网络: "自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
2020-01-30 14:04:47 )6288( 亮了
Grafana CVE-2020-13379漏洞分析:重定向和URL参数注入漏洞的综合利用可以在任何Grafana产品实例中实现未经授权的服务器端请求伪造攻击SSRF
牛创网络: "在Grafana产品实例中,综合利用重定向和URL参数注入漏洞可以实现未经授权的服务器端请求伪造攻击(SSRF)。该漏洞影响Grafana 3 0 1至7 0 1版本。
2020-08-12 14:26:44 )4301( 亮了
Nginx反向代理配置及反向代理泛目录,目录,全站方法
牛创网络: "使用nginx代理dan(sui)是http响应消息写入服务地址或Web绝对路径的情况。 写一个死的服务地址是很少见的,但它偶尔也会发生。 最棘手的是写入web绝对路径,特别是如果绝对路径没有公共前缀
2019-06-17 10:08:58 )3858( 亮了
fortify sca自定义代码安全扫描工具扫描规则(源代码编写、规则定义和扫描结果展示)
牛创网络: "一般安全问题(例如代码注入漏洞),当前fortify sca规则具有很多误报,可通过规则优化来减少误报。自带的扫描规则不能检测到这些问题。 需要自定义扫描规则,合规性角度展示安全风险。
2020-02-12 10:49:07 )3505( 亮了
整理几款2020年流行的漏洞扫描工具
牛创网络: "漏洞扫描器就是确保可以及时准确地检测信息平台基础架构的安全性,确保业务的平稳发展,业务的高效快速发展以及公司,企业和国家 地区的所有信息资产的维护安全。
2020-08-05 14:36:26 )2536( 亮了
微擎安装使用技巧-微擎安装的时候页面显示空白是怎么回事?
牛创网络: "我们在公众号开发中,有时候会用到微擎,那我们来看一下微擎安装的时候页面显示空白是怎么回事吧
2019-06-08 15:34:16 )2261( 亮了
渗透测试:利用前端断点拦截和JS脚本替换对前端加密数据的修改
牛创网络: " 本文介绍的两种方法,虽然断点调试比JS脚本代码替换更容易,但是JS脚本代码替换方法可以实现更强大的功能,测试人员可以根据实际需要选择适当的测试方法
2020-01-07 09:34:42 )1995( 亮了
从工业界到学界盘点SAS与R优缺点比较
牛创网络: "虽然它在业界仍然由SAS主导,但R在学术界广泛使用,因为它的免费开源属性允许用户编写和共享他们自己的应用程序 然而,由于缺乏SAS经验,许多获得数据分析学位的学生很难找到工作。
2019-07-13 22:25:29 )1842( 亮了
41款APP侵犯用户隐私权:QQ,小米,搜狐,新浪,人人均被通报
牛创网络: "随着互联网的不断发展,我们进入了一个时代,每个人都离不开手机。 但是,APP越来越侵犯了用户隐私权。12月19日,工业和信息化部发布了《关于侵犯用户权益的APP(第一批)》的通知。
2019-12-20 11:28:14 )1775( 亮了