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

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

缺陷编号:wooyun-2012-06519

漏洞标题:福建省国土资源厅任意jsp上传

相关厂商:福建省国土资源厅

漏洞作者: possible

提交时间:2012-05-06 09:19

修复时间:2012-06-20 09:20

公开时间:2012-06-20 09:20

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

危害等级:低

自评Rank:1

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-05-06: 细节已通知厂商并且等待厂商处理中
2012-05-10: 厂商已经确认,细节仅向厂商公开
2012-05-20: 细节向核心白帽子及相关领域专家公开
2012-05-30: 细节向普通白帽子公开
2012-06-09: 细节向实习白帽子公开
2012-06-20: 细节向公众公开

简要描述:

福建省国土资源厅存在任意文件直接上传bug

详细说明:

福建省国土资源厅存在任意文件直接上传bug
上传页面:
http://mail.fjgtzy.gov.cn/admin/template/uploadFile.jsp
对应后台处理代码

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
{
UploadFileForm uploadFileForm = (UploadFileForm)form;
String realPath = request.getParameter("realPath");
String dir = this.servlet.getServletContext().getRealPath(realPath);
FormFile file = uploadFileForm.getFile();
if (file == null) {
return mapping.findForward("success");
}
String fname = file.getFileName();
String size = Integer.toString(file.getFileSize()) + "bytes";
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddhhmmss");
String tempfilename = df.format(new Date()) + "." + Utils.getFileSuffix(fname);
try
{
InputStream streamIn = file.getInputStream();
OutputStream streamOut = new FileOutputStream(dir + "/" + tempfilename);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = streamIn.read(buffer, 0, 8192)) != -1) {
streamOut.write(buffer, 0, bytesRead);
}
streamOut.close();
streamIn.close();


只有任何限制,只是重命名了,不输入realPath 默认保存到站点根目录下,而且页面返回上传后重命名文件的名称,上传漏洞的典范。

漏洞证明:

http://mail.fjgtzy.gov.cn/admin/conndb.jsp
shell是系统权限。
简单看了一下,该站点数据库与主机分离,数据库是sa权限,可能直接获得另一台主机(没有测试).数据库连接文件Proxool.properties
站点有邮件服务器,http://www.fjgtzy.gov.cn:6080/admin/index.php
winmail密码
admin/evecom
test/test
test123/test123
后台简单看一个眼,网上审批?很...


该服务器上好像还有很多东西,很多代码,很多数据...不看了,睡觉了,明天早起...

修复方案:

该套代码很庞大,难免出现漏洞,可以说这套代码在我看到的几个政府代码中算是好的,代码本身有过滤功能,让我弄了半天,本想直接使用FCK上传一个jsp,总是被拦截,看了一下拦截代码,过滤
evecom.jspcode='|and|set|exec|varchar|insert|select|*|update|delete|chr|master|truncate|char|declare|<|>
evecom.formcode=<iframe>,</iframe>,<script>,</script>,expression,alert,delete,and,insert,select,truncate,main,street,--,+,foobar,javascript
但是我请求页面没有这些关键词呀,怎么回事,现在也没弄明白,对jsp不熟,还希望有高人指点一下。
但是安全很扯淡,有一个点没弄好,就会全军覆没,该站点可能还有很多未发现漏洞,管理员联系厂商自己在找找吧。
最后声明一下:没做任何破坏,仅是为了学习而渗透,为了渗透而学习。感谢贵站给予的学习机会。让我们一起在安全领域提高。
是不是写多了,希望别被封号....

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:14

确认时间:2012-05-10 10:40

厂商回复:

CNVD确认漏洞并复现所述情况,转由CNCERT福建分中心协调涉事单位处置。
对漏洞评分如下:
CVSS:(AV:R/AC:L/Au:NR/C:C/A:P/I:C/B:N) score:9.67(最高10分,高危)
即:远程攻击、攻击难度低、不需要用户认证,对机密性、完整性造成完全影响,对可用性造成部分影响。
技术难度系数:1.0(一般)
影响危害系数:1.5(较严重,涉及省厅级政府部门网站多个在线业务系统)
CNVD综合评分:9.67*1.0*1.5=14.505
possbile同学又在拿政府站刷rank了。

最新状态:

暂无


漏洞评价:

评论

  1. 2012-05-10 13:03 | possible ( 普通白帽子 | Rank:373 漏洞数:32 | everything is possible!)

    @cncert国家互联网应急中心 说的我都不好意思刷了...