CVE-2020-35489:Contact Form 7插件中的不受限制文件上传漏洞

漏洞概述

众所周知,Contact Form 7是一款非常受欢迎的WordPress插件。但是根据安全研究专家的最新发现,Contact Form 7中存在一个不受限制的文件上传漏洞。这个漏洞被标记为了高危漏洞,目前存在漏洞的Contact Form 7插件已经安装在了500多万个网站上,使得这些网站将成为攻击者严重的“香饽饽”。在该漏洞的帮助下,攻击者将能够对目标站点执行网络钓鱼、网站接管、数据窃取和Credit卡欺诈等攻击活动。

在这篇文章中,我们将介绍并分析该漏洞的成因,并给出针对该漏洞的概念验证PoC以及缓解方案。

[[378265]]

Contact Form 7插件

关于该插件的信息,我们直接引用该插件官方文档给出的介绍:

Contact Form 7是一款免费的wordpress联系表单插件,简称CF7,在WP官方的插件排行榜里排名第一,也是表单插件里最受欢迎的插件之一。该插件可以管理多个联系人表单,并且可以通过简单的标记灵活地定制表单和邮件内容。

漏洞介绍

国家漏洞数据库(NVD)目前已将该漏洞标记为了CVE-2020-35489,相关漏洞描述如下:

  • WordPress的Contact Form 7插件(版本低于v5.3.2)将允许攻击者实现不受限制的文件上传和远程代码执行(由于文件名中可能包含特殊字符)。
  • 该插件允许WP管理员在自己的网站上创建联系人表单,网站用户可以在表单中输入相关联系信息以获取技术支持或获取反馈信息。
  • 恶意用户可以通过上传一个文件名中包含了双扩展名的文件来利用该漏洞,文件名由不可打印或特殊字符分隔,比如“说php .jpg”(\t字符是分隔符)。

接下来,Contact Form 7并不会从上传文件的文件名中移除这些字符,并且会解析包含第一个扩展名在内的之前的文件名,而分隔符会导致Contact Form 7无法解析后续的扩展名。因此,最后的文件名就变成了“php”。

而攻击者将能够通过远程代码执行在服务器中访问或执行此文件。

关于Contact Form 7的源代码,感兴趣的同学可以点击【这里】查看托管在GitHub上的源代码。

因此,攻击者将能够利用漏洞CVE-2020–35498对目标站点产生严重的安全影响。

漏洞利用PoC

注意,我们还不能公开披露该漏洞的相关技术和利用细节,因为官方的PoC尚未发布。而且在2020年12月31日之前,我们还要给供应商和广大用户一定的时间来进行更新。

在这里,我将在本地配置一个WordPress站点,并演示如何利用该漏洞。我将使用Contact Form 7 v5.3.1版本的插件来演示该漏洞的利用方法,因为这个漏洞已在2020年12月17日发布的5.3.2版本中进行了修复。

环境配置

首先,我们需要下载、导入、安装并激活该插件:

此时,Contact Form 7插件已经安装并激活陈公公了。

第二步,我们要在WordPress侧边栏中找到“Contact”标签,然后点击“Add New”按钮来创建一个新的表单。

接下来,为了进行漏洞演示,我创建了一个“Job Application Form”表单,这个表单提供了一个文件上传的功能支持。

最后,将这个表单添加至一个页面中并发布。

攻击场景

我们访问这个新建的页面,然后在表单中文件上传部分上传一个文件名为“exploit.php .jpg”的文件。

我们的恶意文件此时将会被成功上传至服务器。

点击“Submit”按钮,我们将会收到服务器端返回的上传响应,表明我们的文件已经成功上传了,文件名为“exploit.php”。接下来,我们将能够通过任意代码执行在服务器中访问或执行此文件了。

文件的默认上传路径为“wp-content/uploads”,但是可以通过下列方式来修改文件上传路径(WPCF7_UPLOADS_TMP_DIR):

  1. define( 'WPCF7_UPLOADS_TMP_DIR', '/your/file/path' ); 

漏洞影响

通过利用该漏洞,攻击者可以直接上传任意类型的文件,并绕过目标站点部署的上传文件类型限制,其后果可能但不限于:

  • 接管整个网站;
  • 恶意软件感染,窃取Credit卡信息,将用户重定向至恶意页面;
  • 网络钓鱼攻击;
  • 获取目标服务器文件系统和数据库信息;
  • 插入后门程序;
  • ……

漏洞缓解

进入WordPress插件功能页面中,将该插件版本更新至v5.3.2或更新版本。除此之外,我们还可以使用WordPress安全漏洞扫描器-WPSec来扫描和监控我们的WordPress站点。运行WPSec之后,我们将看到如下图所示的输出内容:

实际上,类似的漏洞经常都会常出现。因此我们建议广大用户尽量定期手动对插件进行更新。除此之外,我们还应该禁止uploads文件夹内的PHP代码执行功能。如果使用的是Nginx,可以在配置文件中添加下列内容来禁用PHP代码执行功能:

  1. location ^~ /wp-content/uploads/ { 
  2.  

对于Apache Web服务器,我们不建议通过在uploads文件夹中放置.htaccess文件来防止PHP代码执行,因为攻击者很可能会使用上述漏洞覆盖此文件。我们可以使用Apache配置文件来阻止执行,但这在共享宿主环境中可能是一个问题。同时,我们可以将AllowOverride设置为None以防止.htaccess文件覆盖设置。

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/135840.html<

(0)
管理的头像管理
上一篇2025-03-01 19:37
下一篇 2025-03-01 19:38

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注