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

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

缺陷编号:wooyun-2013-032857

漏洞标题:高版本正方教务系统上传后缀过滤不严导致能直接上传Webshell

相关厂商:正方软件股份有限公司

漏洞作者: 光的圆周率

提交时间:2013-07-30 22:11

修复时间:2013-10-28 22:12

公开时间:2013-10-28 22:12

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

危害等级:中

自评Rank:9

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

在旧版本中有一个利用插件上传文件的漏洞,但是在新版本中已经没有了这个插件.这个漏洞是由于过滤不严造成的,可以直接上传Webshell进行提权,由于代码在DLL中,全国大部分高校均有此漏洞,影响范围很大,90%以上的学校均可使用这个方法进行提权

详细说明:

上传函数仅判断是否包含".asp" ".php"".exe"字符串 因此可以直接上传如CER格式的Webshell进行提权
jwggfbb.cs

private void btn_sc_Click(object sender, EventArgs e)
{
if (Strings.InStr(this.loFile.get_PostedFile().get_FileName(), ".asp", 0) > 0)
{
this.RegisterStartupScript("Startup", "<script language='javascript'>alert('不能上传asp文件!!');</script>");
}
else if (Strings.InStr(this.loFile.get_PostedFile().get_FileName(), ".php", 0) > 0)
{
this.RegisterStartupScript("Startup", "<script language='javascript'>alert('不能上传php文件!!');</script>");
}
else if (Strings.InStr(this.loFile.get_PostedFile().get_FileName(), ".exe", 0) > 0)
{
this.RegisterStartupScript("Startup", "<script language='javascript'>alert(不能上传exe文件,请压缩后上传!!');</script>");
}
else
{
this.tcf = false;
this.Button1_Click();
if (!this.tcf)
{
if (StringType.StrCmp(this.scms, "1", false) == 0)
{
this.data_dir.set_Text(ConfigurationSettings.get_AppSettings().get_Item("HTTP1") + "/wbwj/" + this.lstrFileName);
}
if (StringType.StrCmp(this.scms, "2", false) == 0)
{
this.data_dir.set_Text("wbwj/" + this.lstrFileName);
}
}
}
}


scglwj.cs

private void Button2_Click(object sender, EventArgs e)
{
if (Strings.InStr(this.loFile1.get_PostedFile().get_FileName(), ".asp", 0) > 0)
{
this.get_Response().Write("<script language='javascript'>alert('不能上传asp文件!!');</script>");
}
else if (Strings.InStr(this.loFile1.get_PostedFile().get_FileName(), ".php", 0) > 0)
{
this.get_Response().Write("<script language='javascript'>alert('不能上传php文件!!');</script>");
}
else
{
this.Button1_Click();
string mysql = "insert into jwggfbb (GGBT,GGZW,FBDW,FBSJ,YXQX,mxddx,mxxdx,fbnr,scip) values ('" + this.ggbt.get_Text() + "','" + ConfigurationSettings.get_AppSettings().get_Item("HTTP1") + "UpLoad/" + this.lstrFileName + "','" + this.fbdw.get_Text() + "',to_char(sysdate,'YYYY-MM-DD hh:mi:ss'),'" + this.yxqx.get_Text() + "','','','wjgl','" + this.get_Request().get_UserHostAddress() + "')";
OracleConnection objConnection = new OracleConnection(ConfigurationSettings.get_AppSettings().get_Item("MyConn") + this.zhj.jiemi(ConfigurationSettings.get_AppSettings().get_Item("MyPwd"), this.zhj.str_jm));
if (Module1_sjf.checksql(mysql))
{
OracleCommand objCommand = new OracleCommand(mysql, objConnection);
objConnection.Open();
objCommand.ExecuteNonQuery();
objConnection.Dispose();
this.DataGrid1.set_EditItemIndex(-1);
this.zhj.BindtoGrid("select * from jwggfbb where fbnr='wjgl' order by fbsj,yxqx", this.DataGrid1);
}
}
}

漏洞证明:

当为asp文件时会提示不能上传asp文件

1.PNG


直接将asp大马改成CER格式 直接上传无鸭梨 麻麻再也不用担心我的学习啦

2.PNG


文件存放在网站根目录的wbwj文件夹中 虽然叫wbwj但是还是没有限制运行权限,直接提权得到服务器权限

3.PNG


修复方案:

1.如果有源代码的话编译DLL文件做好文件过滤
2.限制wbwj文件夹和UPLOAD文件夹的运行权限

版权声明:转载请注明来源 光的圆周率@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:11

确认时间:2013-08-03 17:21

厂商回复:

最新状态:

暂无