解决DTcms4.0.3以下版本任意删除文件漏洞

Hailin 发表于 2016-06-04 08:35:30 来源于CMS插件网 评论 0 点击 6091
摘要:最近小编听到不少站长说自己的网站突然就打不开了,进去入空间发现web.config配置文件不见了,所以小编决定公开这个漏洞;这个漏洞从4.0版本开始就一直存在,DTcms官方也对这个漏洞进行了2次修补,但都失败了。商业版仅在2016年3月份才真正修复好这个漏洞。可是绝大多站长都还…

最近小编听到不少站长说自己的网站突然就打不开了,进去入空间发现web.config配置文件不见了,所以小编决定公开这个漏洞;这个漏洞从4.0版本开始就一直存在,DTcms官方也对这个漏洞进行了2次修补,但都失败了。商业版仅在2016年3月份才修复好这个漏洞。可是觉大多站长都还是用的是4.01、4.02的版本,这给网络安全带来了绝大的安全隐患。

希望看到本文章的站长们,及时的检查一下自己网站是否存在这一问题,有的及时修复,没有的也要注意安全问题,毕竟DTcms不止这一处BUG,还有一处可任意删除网站图片的BUG,小编不打算公开,因为小编并没有非常好的解决方法。所以有高手想修复这个问题的,可联系小编获取这一BUG详情;

好吧,我们来看看今天的漏洞,首先上一张图片:

1.jpg

文件路径:DTcms.Web\tools\upload_ajax.ashx

这个漏洞并不是所有版本都存在的,如果你已经是正规的DTcms 4.0.3版本,就不需要更修复这个问题了,因为官方已经修复了。但是4.0.2以及4.0.1的版本都存在这一问题,请及时修复。

首选我们来看,为什么官方做了防跨目录删除,会无效呢?

这里如果说正常使用是没问题的,因为限制了必需在upload目录,且多虑了“../”上级目录。按正来说是不可能删除web.config这个文件的。但是事实怎么样呢。小编用“/upload/..\\web.config”,即符合了以“upload”为起始目录,又满足了平存在“../”字符,就这样可以很顺利绕过限制达到删除网站任意文件的目的;看下图

3.jpg

小编用一个简单的方法来验证是不是可以轻松绕过限制,看下面输出结果;

4.jpg

漏洞的具体操作小编不会公布的,只能告诉你可以用“..\\”绕过系统的限制,所以希望看到本文章的站长们及时的修复这个危险的漏洞。

//删除已存在的旧文件,旧文件不为空且应是上传文件,防止跨目录删除
if (!string.IsNullOrEmpty(_delfile) && _delfile.IndexOf("..") == -1 
	&& _delfile.ToLower().StartsWith(siteConfig.webpath.ToLower() + siteConfig.filepath.ToLower()))
 {
	Utils.DeleteUpFile(_delfile);
}

针对这个问题的修复,我们暂且用官方给的4.0.3的修复方案,把“../”改成“..”;

最后提醒一下部分站长,小编有接触过,有些黑心商家,直接将4.0.0、4.0.1或者4.0.2的版本直接修改成4.0.3;然后说是官方最新版本 以高价卖给你。虽然小编个人不太喜欢DTcms官方的人,但是还是建议大家走正规渠道,保证自己的利益。

热门资讯