WP Time Capsule任意文件上传漏洞CVE-2024-8856
WP Time Capsule(WPTC)是WordPress中一个用于实时备份等功能的插件,插件提供实时备份、定时备份、自动备份等多种备份功能。
WPTC插件使用云应用程序的原生文件版本控制系统来检测更改,并将更改的文件和数据库条目备份到用户帐户,让用户安心于网站运行。
一、基本情况
WPTC插件是商业增值插件,提供基础功能免费、用户可以通过注册账户获得30天的全功能试用权限,无论是备份还是恢复都非常可靠。
使用WP Time Capsule插件,站长可以实时 或者定时的备份网站,也可以加密其数据库备份,通过增加额外的安全层使得备份GDPR兼容。
WPTC插件可以实现每次只备份和恢复更改文件& DB而非整个站点,且 文件和数据库存储在亚马逊S3、Google Drive等云存储应用程序。
栋科技漏洞库关注到WordPress的WP Time Capsule 插件修复未经身份验证任意文件上传漏洞,追踪为CVE-2024-8856,CVSS评分9.8。
二、漏洞分析
CVE-2024-8856漏洞源于WP Time Capsule插件中的UploadHandler.php 文件中缺少文件类型验证,备份和暂存易受任意文件上传的攻击。
而且需要特别注意的是,WordPress的WP Time Capsule插件 1.22.21 及之前的所有版本中都没有直接文件访问保护,导致影响非常严重。
这种危险的组合为攻击者提供了一条直接的途径来破坏易受攻击的网站,恶意行为者可能通过注入后门、恶意软件,甚至完全控制该网站。
该漏洞这使得未经身份验证的攻击者可以在受影响站点的服务器上上传任意文件,这使得受影响的站点出现远程代码执行的风险成为可能。
该漏洞由安全研究人员 Rein Daelman 发现并负责任的披露,攻击者可通过发送 JSON 格式的 POST 请求绕过身份验证,示例如下所示:
{
"action": "wptc_upload_file",
"file_path": "../../../malicious.php",
"file_content": "<?php system($_GET['cmd']); ?>"
}
此 JSON 有效负载利用插件的合法文件上传功能,并允许将任意 PHP 文件放置在服务器上。
三、影响范围
WP Time Capsule <= 1.22.21
四、修复建议
WP Time Capsule >= 1.22.22
五、参考链接
https://plugins.trac.wordpress.org/changeset/3188325/
https://cn.wordpress.org/plugins/wp-time-capsule/
https://plugins.trac.wordpress.org/powser/wp-time-capsule/trunk/wp-tcapsule-pidge/upload/php/UploadHandler.php