WordPress评论插件wpDiscuz任意文件上传复现

时间:2022-07-26
本文章向大家介绍WordPress评论插件wpDiscuz任意文件上传复现,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

wpDiscuz是WordPress评论插件。创新,现代且功能丰富的评论系统,可充实您的网站评论部分。

0x02 漏洞概述

Wordfence的威胁情报团队在一款名叫wpDiscuz的Wordpress评论插件中发现了一个高危漏洞,而这款插件目前已有超过80000个网站在使用了。这个漏洞将允许未经认证的攻击者在目标站点中上传任意文件,其中也包括PHP文件,该漏洞甚至还允许攻击者在目标站点的服务器中实现远程代码执行。

0x03 影响版本

wpDiscuz7.0.0–7.0.4

0x04 环境搭建

Wordpress5.4.1下载地址

https://cn.wordpress.org/wordpress-5.4.1-zh_CN.tar.gz

wpDiscuz7.0.3下载地址

https://downloads.wordpress.org/plugin/wpdiscuz.7.0.3.zip

用phpstudy搭建Wordpress,然后将wpdiscuz放到wordpresswp-contentplugins目录下,进入Wordpress后台插件页面启动即可。

0x05 漏洞复现

1、进入首页默认文章的评论处。点击图片标签。

2、wpDiscuz插件会使用mime_content_type函数来获取MIME类型,但是该函数在获取MIME类型是通过文件的十六进制起始字节来判断,所以只要文件头符合图片类型即可。

3、访问上传的文件。

http://127.0.0.1////wordpress////wp-content////uploads////2020////09////1-1600845408.8181.php

0x06 修复方式

升级wpDiscuz版本。

https://downloads.wordpress.org/plugin/wpdiscuz.7.0.7.zip

isAllowedFileType函数中对extension后缀进行了检测,当MIME与后缀不一样时会在进入最后一步之前返回False,也就是说使用MIME的白名单来对上传文件的后缀进行了限制。

0x07 踩坑经验

分析有很多师傅分析过了,我就说下我遇到的问题。

1、搭建wp的时候,getMimeType函数的前两个if判断默认函数是否被定义都返回False,然后跳到了wordpress自带的wp_check_filetype函数中,就会绕过失败。后换了一个工具搭建wp就没有这个问题。

使用其他版本搭建