当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0122336

漏洞标题:dtcms最新版任意文件删除漏洞(补丁修复不给力绕过继续删除)

相关厂商:dtcms.net

漏洞作者: 不能忍

提交时间:2015-06-25 12:07

修复时间:2015-09-23 12:12

公开时间:2015-09-23 12:12

漏洞类型:设计缺陷/逻辑错误

危害等级:中

自评Rank:5

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-06-25: 细节已通知厂商并且等待厂商处理中
2015-06-25: 厂商已经确认,细节仅向厂商公开
2015-06-28: 细节向第三方安全合作伙伴开放
2015-08-19: 细节向核心白帽子及相关领域专家公开
2015-08-29: 细节向普通白帽子公开
2015-09-08: 细节向实习白帽子公开
2015-09-23: 细节向公众公开

简要描述:

http://www.wooyun.org/bugs/wooyun-2014-060431
就是这个bug的补丁不给力,所以继续删除

详细说明:

同样的是tools/upload_ajax.ashx:
private void UpLoadFile(HttpContext context)
{
DTcms.Model.siteconfig siteConfig = new DTcms.BLL.siteconfig().loadConfig();
string _delfile = DTRequest.GetString("DelFilePath");
HttpPostedFile _upfile = context.Request.Files["Filedata"];
bool _iswater = false;
bool _isthumbnail = false;
if (DTRequest.GetQueryString("IsWater") == "1")
{
_iswater = true;
}
if (DTRequest.GetQueryString("IsThumbnail") == "1")
{
_isthumbnail = true;
}
if (_upfile == null)
{
context.Response.Write("{\"status\": 0, \"msg\": \"请选择要上传文件!\"}");
}
else
{
UpLoad upFiles = new UpLoad();
string msg = upFiles.fileSaveAs(_upfile, _isthumbnail, _iswater);
if (!string.IsNullOrEmpty(_delfile) && _delfile.ToLower().StartsWith(siteConfig.webpath.ToLower() + siteConfig.filepath.ToLower()))
{
Utils.DeleteUpFile(_delfile);
}
context.Response.Write(msg);
context.Response.End();
}
}
补丁应该就是:
if (!string.IsNullOrEmpty(_delfile) && _delfile.ToLower().StartsWith(siteConfig.webpath.ToLower() + siteConfig.filepath.ToLower()))
这里其实就是读取xmlconfig/site.config配置文件,里面有webpath => "/"和filepath => "upload"也就是说只要我们提交的DelFilePath中以/upload开头就可以绕过这个逻辑判断了,那么我们可以构造:
DelFilePath=/upload/../web.config

漏洞证明:

这里我们同样是demo演示:

QQ截图20150623190141.png


这个是第一次上传

delete2.jpg


这里是删除了
同样的我们把
DelFilePath=/upload/../web.config
传过去,网站配置文件就删掉了!

修复方案:

补丁的补丁

版权声明:转载请注明来源 不能忍@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-06-25 12:10

厂商回复:

我们继续跟进及处理

最新状态:

2015-09-16:已对4.0上传进行修补工作,下载最新的源码及补丁即可解决问题。