使用者尽快升级!简单便捷的WordPress文件管理插件漏洞百出 – 作者:中科天齐软件安全中心

图片[1]-使用者尽快升级!简单便捷的WordPress文件管理插件漏洞百出 – 作者:中科天齐软件安全中心-安全小百科

WordPress是一个以PHP和MySQL为平台的,免费自由开源的博客软件和内容管理系统。使用WordPress可以轻松创建个人博客、网站、论坛及商店等,其中很多可用的插件帮助用户更容易便捷的让自己创建的内容更丰富。

这些漏洞允许对网站进行一系列攻击,包括删除博客页面和远程代码执行。

一个严重的跨站点脚本 (XSS) 错误会影响运行前端文件管理器插件的WordPress站点,并允许远程未经身份验证的用户将JavaScript代码注入脆弱的网站,以创建管理员用户帐户。

该漏洞是影响WordPress插件前端文件管理器17.1和18.2版本的6个关键缺陷之一,这两个版本活跃在2000多个网站上。周一公开披露的每个漏洞都有可用的补丁。

网络安全研究人员称,这些漏洞会打开运行插件的网站,从而引发广泛的远程代码执行攻击,让对手有能力更改或删除帖子,设置垃圾邮件中继,实现特权升级,进行跨站点脚本(XSS)存储攻击。

WordPress插件旨在允许用户将文件上传到网站管理员。每个文件都保存在一个私有目录中,因此每个用户在登录后都可以管理自己的文件。

存储型XSS

未经身份验证的“wpfm_edit_file_title_desc”AJAX 操作加载一个函数(“wpfm_edit_file_title_desc”),当有人编辑网站帖子时使用该函数。但它无法验证用户是否正在编辑自己的帖子,而且目前缺乏安全性。因此,未经身份验证的用户可以更改每个页面的内容和标题并在博客上发布。

此外,如果帖子类型是wpfm-files,则可以在帖子标题中注入JavaScript代码,因为该插件仅依赖WordPress esc_attr函数来清理 $_REQUEST[‘file_title’] 变量,该变量将被回显后端部分的HTML属性之外,当管理员用户访问插件的设置页面时,将执行JavaScript 代码。

因此,未经身份验证的用户可以注入JavaScript代码以创建管理员用户帐户。XSS漏洞在软件开发初期可以通过静态代码检测及时发现并修改。

权限提升

同时,权限提升问题源于“wpfm_get_current_user”函数,该函数用于从“nmedia-user-file-uploader/inc/helpers.php”脚本中检索用户 ID 。

“如果用户通过身份验证,它会从WordPress get_current_user_id 函数中检索用户ID,如果用户没有登录,它会从插件的wpfm_guest_user_id选项中检索用户ID,”研究人员解释说。“但无论是否经过身份验证,用户都可以将任何ID分配给$_GET[‘file_owner’]变量,以覆盖$current_user_id L318,这可能导致权限升级。”

身份验证设置更改和任意文件上传

“’nmedia-user-file-uploader/inc/admin.php’脚本中的’wpfm_save_settings’ 函数由 wpfm_save_settings AJAX操作(经过身份验证)加载,它用于保存插件的设置,没有能力检查或安全随机数。

因此,攻击者可以通过将PHP添加到允许的文件类型列表来利用它。

根据分析,“使用’wpfm_upload_file’ AJAX 操作,攻击者可以上传一个 PHP 脚本,该脚本将被保存为

‘http://example.com/wp-content/uploads/user_uploads//.php ,’ 这将导致远程代码执行。”

未经验证的任意删帖

未经身份验证的’wpfm_delete_file’ AJAX 操作(未经身份验证)从

‘nmedia-user-file-uploader/inc/files.php’ 脚本加载’wpfm_delete_file’ 函数,它取一个ID,$_REQUEST[‘file_id’],并删除相应的L708帖子。

问题是插件不能验证用户是否可以删除相应的帖子,而且现在缺乏安全性。

研究人员称,这里只调用了不安全的’ wpfm_get_current_user ‘函数,但是结果,’ $curent_user ‘甚至没有在代码中检查。

未经认证的Post Meta更改和任意文件下载

该公司表示,攻击者还可以更改任何发布的元数据,这可能导致任意文件下载。

“.wpfm_file_meta_update’AJAX 操作(未经身份验证)从’nmedia-user-file-uploader/inc/files.php’ 脚本加载’wpfm_file_meta_update’ 函数,”研究人员解释说。“它用于修改后期元数据,没有能力检查,数据也没有经过验证或清理。”

根据分析,攻击者可以利用该漏洞修改post的元数据,将” wpfm_dir_path “赋值给” $meta_key “,将” wp-config.php “赋值给” $meta_value “,然后下载” w5p-config.php “脚本,而非上传的文件。

未经身份验证的HTML注入

最后一个问题允许未经身份验证的用户将博客用作垃圾邮件中继。

该错误源于“nmedia-user-file-uploader/inc/callback-functions.php”脚本中的“wpfm_send_file_in_email”函数,该函数允许用户发送电子邮件。

“因为这封邮件以HTML格式发送并且没有经过清理,所以可以注入HTML代码(文本格式、CSS、图像等)以完全自定义电子邮件,”此外,即使 ‘$_REQUEST[‘file_id’]’ 为空或无效,消息仍会被发送。

WordPress插件问题如何解决

为保护自己免受攻击,应尽快升级到6月26日发布的18.3或以上版本。

WordPress插件继续为攻击者提供可利用的漏洞来破坏网站。

今年1月, 研究人员警告称,名为Orbit Fox的WordPress 插件中存在两个漏洞(其中一个非常严重),攻击者可能会利用这些漏洞将恶意代码注入脆弱的网站或控制网站。

同月,一个名为PopUp Builder的插件被WordPress网站用于构建订阅时事通讯的弹出式广告,被发现存在一个漏洞,攻击者可以利用该漏洞发送带有自定义内容的时事通讯,或者删除或导入时事通讯订阅者。

今年2月,一个未打补丁的存储跨站点脚本(XSS)的安全漏洞被发现,可能影响50000Contact Form 7 Style插件用户。

今年 3 月,WordPress的The Plus Addons for Elementor插件被发现包含一个严重的安全漏洞,攻击者可以利用该漏洞快速、轻松地远程接管网站。最初报道为0-day漏洞,研究人员发现在野受到攻击。

如何减少系统漏洞?

系统漏洞产生的原因有很多种,如代码问题或运行错误等。在OWASP中,60-70%的安全漏洞类型是可以通过源代码静态分析技术检测出来的,因此在开发初期通过静态代码检测可以有效发现系统漏洞及部分运行时会出现的漏洞,如注入漏洞、跨站脚本(XSS)、敏感信息泄露等,便于及时修改和发现也能降低修改漏洞的成本和精力。

参读链接:

https://threatpost.com/frontend-file-manager-wordpress-bugs/167687/

来源:freebuf.com 2021-07-14 10:36:49 by: 中科天齐软件安全中心

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论