H

Pydio单元格4.1.2-通过文件下载跨站点脚本(XSS)

HackApt-37 Team已验证会员

黑客倉庫站長

贡献: 83%
利用标题: PYDIO单元4.1.2-跨站点脚本(XSS)通过文件下载
受影响的版本: 4.1.2和更早版本
固定版本: 4.2.0,4.1.3,3.0.12
漏洞type:跨站点脚本
安全风险:高
供应商URL: https://pydio.com/
供应商状态:已通知
咨询URL: https://www.redteam-pesting.de/ADVISOIRES/RT-SA-SA-2023-004
咨询状态:发布
CVE: CVE-2023-32751
cve url: https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2023-32751
介绍
===============
'Pydio Cells是一种开放核,自托管的文档共享,
专为组织设计的协作平台(DSC)
不需要安全的高级文档共享和协作
权衡或合规性问题。”
(来自供应商的主页)
更多细节
===============
当在Pydio单元格应用程序中下载了名为“ xss.html”的文件时
下载类似于以下的URL生成:
?awsaccesskeyid=网关
到期=1682495748
签名=920jv0zy%2Brnyxjak7xksaxrprp8%3D
响应- 含量分解=附件%3B%20fileName%3Dxss.html
pydio_jwt=qie9duut-oicxrznvlynmf6ctenb0j-j [.]
URL类似于Amazon S3服务使用的预先签名URL。它
包含设置的URL参数“响应content-disposition”
“附件”导致响应包含“内容词”
带有该值的标题。因此,浏览器下载文件
而不是解释它。 URL还包含签名和到期
时间戳,由后端检查。与所使用的准备的URL不同
由S3,URL还包含参数“ pydio_jwt”
用户进行身份验证。此外,具有ID的访问密钥
引用了“网关”,可以在JavaScript来源中找到
Pydio细胞与Secret3360一起
----------------------------------------------------------------------------------------------------------------------
_awssdk.default.config.update({
AccessKeyID:“网关”,
secretaccesskey:“ gatewaysecret”,
S3ForcePathStyle:0,
httpoptions: {
timeout: pydioapi.getmultipartuploadtimeout()
}
});
----------------------------------------------------------------------------------------------------------------------
有了这些信息,可以更改URL参数
对值“内联”的“响应- 包含分配”,然后计算
由此产生的URL的有效签名。此外,内容类型
可以通过添加URL将响应更改为“ text/html”
该值的参数为“响应- 符合型”。这将导致
如前所述的示例URL:类似于以下的URL
awsaccesskeyid=网关
到期=1682495668
签名=HPKUE0YQZRNP%2B665JF1T7ONGFRG%3D
响应content-disposition=内联
响应- 容器类型=text%2fhtml
pydio_jwt=qie9duut-oicxrznvlynmf6ctenb0j-j [.]
在浏览器中打开URL后,文件中包含的HTML是
解释并运行任何JavaScript代码。
概念证明
=====================
将HTML文件上传到PYDIO单元实例的任意位置。
例如,以下内容:
----------------------------------------------------------------------------------------------------------------------
html
身体
H1 Cross站点脚本/H1
脚本
让Token=JSON.PARSE(localstorage.token4).AccessToken;
警报(令牌);
/脚本
/身体
/html
----------------------------------------------------------------------------------------------------------------------
包含的JavaScript代码读取Pydio单元的JWT访问令牌
从浏览器的本地存储对象中打开一个消息框。反而
仅显示JWT,也可以发送给攻击者。这
然后可以在浏览器的中运行JavaScript函数
开发人员控制台为HTML File:生成预先签名的URL
----------------------------------------------------------------------------------------------------------------------
异步函数getPresignedUrl(path){
令客户端=pydioapi.getClient();
令node=new ajxpnode(path);
令元数据={bucket:'io',响应conterecontentDisposition:'inline',key:路径,响应ectecontenttype:'text/html'};
令url=等待客户端。
返回URL;
}
等待getPresignedUrl('xss/xss.html');
----------------------------------------------------------------------------------------------------------------------
该代码在登录时必须在Pydio单元的上下文中运行。
如果所得的URL在浏览器中打开,则JavaScript代码
运行HTML文件中的包含。如果攻击是在
描述的方式,攻击者的JWT通过URL暴露。
但是,这可以通过首先产生公共网址来循环
对于文件,然后根据
结果下载URL。
解决方法
=============
没有解决方法。
使固定
===
将pydio单元格升级到没有漏洞的版本。
安全风险
=================
可以将文件上传到Pydio单元的实例可以构建的攻击者
在Pydio单元格的上下文中执行任意JavaScript代码的URL
打开时。例如,这可以用于窃取身份验证
打开URL的用户令牌。这样的攻击很可能
成功,因为将URL共享到使用Pydio单元托管的文件是一个
应用程序的常见用例。因此,脆弱性是
估计构成高风险。
时间表
==========
已确定的2023-03-23漏洞
2023-05-02客户批准向供应商披露
2023-05-02供应商已通知
2023-05-03请求CVE ID
2023-05-08供应商发布了固定版本
2023-05-14分配了CVE ID
2023-05-16供应商在发布建议之前再要求几天
2023-05-30咨询发布
参考
=============
[1] https://aws.amazon.com/sdk-for-javascript/
redteam pentesting GmbH
================================
Redteam Pentesting提供了由A执行的个人穿透测试
专业IT安全专家团队。特此,安全弱点
公司网络或产品被发现,可以立即修复。
由于该领域只有很少的专家,因此Redteam Pentesting想要
分享其知识并通过研究来增强公众知识
与安全有关的区域。结果可作为公开
安全咨询。
可以在:中找到有关Redteam Pentesting的更多信息
在Redteam Pentesting工作
=======================================
Redteam Pentesting正在寻找渗透测试人员加入我们的团队
在德国亚兴。如果您有兴趣,请访问:
- -
redteam Pentesting GmbH Tel. +49 241 510081-0
Alter Pasthof 1传真: +49 241 510081-99
52062 AACHEN https://www.redteam-pesting.de
德国registergericht: Aachen HRB 14004
Geschäftsführer:Patrick Hof,Jens Liebchen
 
后退
顶部