前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >CVE-2020-35489 WP插件Contact Form 7任意文件上传

CVE-2020-35489 WP插件Contact Form 7任意文件上传

作者头像
Khan安全团队
发布2021-01-07 17:35:37
发布2021-01-07 17:35:37
6.6K0
举报
文章被收录于专栏:Khan安全团队Khan安全团队

CVE-2020-35489。在Contact Form 7插件中发现不受限制的文件上传漏洞,影响5M+网站。

在一个名为Contact Form 7的流行WordPress插件中发现了一个高严重性的不受限制的文件上传漏洞,跟踪为CVE-2020-35489,目前安装在500万+网站上,使他们容易受到攻击,如网络钓鱼,完全接管网站,数据泄露,网络钓鱼和信用卡欺诈。

在这篇博文中,我们将介绍造成该漏洞的原因、在沙箱环境下的概念验证(PoC)示例以及缓解步骤。

WordPress 5.3.2之前的contact-form-7(又名Contact Form 7)插件允许不受限制的文件上传和远程代码执行,因为文件名可能包含特殊字符。

我将用4个简单的步骤来解释这个问题。

该插件允许WP管理员在他们的网站上创建联系表格,访客可以在其中输入联系信息,如反馈或支持。

如果一个恶意用户上传了一个文件,文件名包含双扩展名,用不可打印或特殊字符分隔,例如一个名为test.php.jpg的文件(/t字符是分隔符)。

那么联系表格7不会从上传的文件名中删除特殊字符,并解析文件名直到第一个扩展名,但由于分隔符的存在,会丢弃第二个扩展名。因此,最终的文件名会变成test.php (见下图).

这个文件可以通过远程代码执行来访问或在服务器上执行。

在这里,我将做一个WordPress的本地设置来展示概念验证的开发。我将使用联系表格7 v5.3.1来展示这个漏洞,因为这个漏洞已经在2020年12月17日的5.3.2版本中被修复。

设置

1. 我们下载、导入、安装,然后激活插件。

联系表格7插件安装并激活

2. 现在我们从侧边栏进入 "联系 "选项卡,点击 "添加新的 "按钮,创建一个新的表单。

3. 在本演示中,我们将创建一个 "工作申请表",其中有一个文件上传栏,用于申请人的简历。

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

攻击场景

现在我们访问新创建的页面,并在文件上传字段中提交一个文件名为exploit.php.jpg的表单。

我们的恶意文件成功上传到了服务器上

点击 "提交",我们会收到来自网络服务器的肯定答复,表明该文件已成功上传为 exploit.php。这个文件可以通过任意代码执行在服务器上被访问或执行。

默认的上传路径是wp-content/uploads,但是可以通过定义WPCF7_UPLOADS_TMP_DIR来改变,比如这样。

define( 'WPCF7_UPLOADS_TMP_DIR', '/your/file/path' )。

影响

通过利用这个漏洞,攻击者可以简单地上传任何类型的文件,绕过网站上允许上传的文件类型的所有限制。其后果可能是:

接管整个网站

恶意软件注入,窃取信用卡信息,将访问者重定向到恶意网页。

通过网络钓鱼破坏网站

文件系统或数据库超载

插入类似Phpsploit的后门。

参考献文:https://blog.wpsec.com/contact-form-7-vulnerability/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Khan安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档