温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么进行Discuz! X任意文件删除的漏洞分析

发布时间:2021-12-28 14:59:56 来源:亿速云 阅读:144 作者:柒染 栏目:大数据

这篇文章将为大家详细讲解有关怎么进行Discuz! X任意文件删除的漏洞分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

0x00 背景介绍


Discuz 官方于2017年9月29号在Git上提交更新:优化 加强安全性。360CERT跟进了此更新并确认存在任意文件删除漏洞。

0x01 漏洞描述


此漏洞曾在2014年被提交到乌云Wooyun平台,Discuz进行了针对性修复。但360CERT通过此次commit分析,由于之前的修复不完全,可导致补丁被bypass,攻击者登录后可以通过设置个人资料为删除文件路径,并构造一次文件上传,就可以绕过补丁造成任意文件删除。

0x02 漏洞攻击影响


影响面

普通注册用户即可实现任意文件删除。经过360CERT研判后确认,漏洞风险等级高。

影响版本

Discuz! X3.4

Discuz! X3.3

Discuz! X3.2

Discuz! X2.5

修复版本

码云平台Discuz!X 

commit 7d603a197c2717ef1d7e9ba654cf72aa42d3e574

0x03 漏洞详情


1、技术细节

怎么进行Discuz! X任意文件删除的漏洞分析

可以看到在14年修复的打的补丁:

$_G['cache']['profilesetting'][$key]['formtype']== 'file'对formtype类型做了验证。

查看昨日commit,一共删除了五处unlink文件删除函数,其中对228行unlink函数做的限制最少。

怎么进行Discuz! X任意文件删除的漏洞分析

在spacecp_profile.php里有文件上传处理函数,其中使用$upload->get_image_info($attach['target'])

对上传文件进行检查,如果不是图片则continue跳过,所以需要上传为图片类型。

删除文件名为$space[$key],也没有进行安全处理

怎么进行Discuz! X任意文件删除的漏洞分析

只需要在前一次提交数据对参数进行进行保存,比如真实姓名处填写删除文件名../../../robots.txt,数据库中的realname就会被保存为../../../robots.txt,再次请求上传文件,就会触发并删除文件.

0x04 修复建议


按照官方Git更新,彻底删除spacecp_profile.php下unlink处代码

关于怎么进行Discuz! X任意文件删除的漏洞分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI