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

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

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

jwggfbb.cs
[php]
private void btn_sc_Click(object sender, EventArgs e)

{

if (Strings.InStr(this.loFile.get_PostedFile().get_FileName(), ".asp", 0) > 0)

{

this.RegisterStartupScript("Startup", "

");

}

else if (Strings.InStr(this.loFile.get_PostedFile().get_FileName(), ".php", 0) > 0)

{

this.RegisterStartupScript("Startup", "

");

}

else if (Strings.InStr(this.loFile.get_PostedFile().get_FileName(), ".exe", 0) > 0)

{

this.RegisterStartupScript("Startup", "

");

}

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);

}

}

}

}[/php]
scglwj.cs
[php]
private void Button2_Click(object sender, EventArgs e)

{

if (Strings.InStr(this.loFile1.get_PostedFile().get_FileName(), ".asp", 0) > 0)

{

this.get_Response().Write("

");

}

else if (Strings.InStr(this.loFile1.get_PostedFile().get_FileName(), ".php", 0) > 0)

{

this.get_Response().Write("

");

}

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);

}

}

}
[/php]

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

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

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

 

1 条评论

  1. X谁谁怀孕

    这个必须得知道管理员账户的啊

发表评论