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

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

jwggfbb.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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 type="text/javascript" language="javascript">// <![CDATA[
alert('不能上传asp文件!!');
// ]]></script>");
 
}
 
else if (Strings.InStr(this.loFile.get_PostedFile().get_FileName(), ".php", 0) &gt; 0)
 
{
 
this.RegisterStartupScript("Startup", "<script type="text/javascript" language="javascript">// <![CDATA[
alert('不能上传php文件!!');
// ]]></script>");
 
}
 
else if (Strings.InStr(this.loFile.get_PostedFile().get_FileName(), ".exe", 0) &gt; 0)
 
{
 
this.RegisterStartupScript("Startup", "<script type="text/javascript" language="javascript">// <![CDATA[
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
private void Button2_Click(object sender, EventArgs e)
 
{
 
if (Strings.InStr(this.loFile1.get_PostedFile().get_FileName(), ".asp", 0) &gt; 0)
 
{
 
this.get_Response().Write("<script type="text/javascript" language="javascript">// <![CDATA[
alert('不能上传asp文件!!');
// ]]></script>");
 
}
 
else if (Strings.InStr(this.loFile1.get_PostedFile().get_FileName(), ".php", 0) &gt; 0)
 
{
 
this.get_Response().Write("<script type="text/javascript" language="javascript">// <![CDATA[
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文件

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

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

高版本正方教务系统上传后缀过滤不严导致能直接上传Webshell的更多相关文章

  1. JavaScript之正方教务系统自动化教评[插件-转载]

    [声明]本插件系学院学长原创,非博主所创,发布此处,仅供学习和效仿. /** * @name:正方教务系统自动化教评-插件 * * @author:chenzhongshu * @date:2017- ...

  2. 广州商学院Python正方教务系统爬虫(获取个人信息成绩课表修改密码)

    使用python的requests库简单爬取,使用xpath解析内容 可以获取个人信息.个人照片.成绩单和课表 github地址:https://github.com/PythonerKK/GZCC- ...

  3. 以正方教务系统为例,用php模拟登陆抓取课表、空教室

    课程格子和超级课程表这两个应用,想必大学生都很熟悉,使用自己的学号和教务系统的密码,就可以将自己的课表导入,随时随地都可以在手机上查看. 其实稍微了解一点php的话,我们也可以做一个类似这样的web ...

  4. xcode低版本调试高版本真机系统

    低版本xcode调试本真机高版本系统 //打开此路径把最新的文件拷贝到这里就可以了 /Applications/Xcode.app/Contents/Developer/Platforms/iPhon ...

  5. HttpURLConnection模拟登录学校的正方教务系统

    教务系统登录界面 如图1-1 1-1 F12-->network查看登录教务系统需要参数: __VIEWSTAT txtUserName TextBox2 txtSecretCode Radio ...

  6. 课程助理For Windows(预览版,正方教务系统学生查分工具)

    其实盖子已经开发了一个功能更强大的版本,但是那个版本依然基于正方系统,也就是说只要正方系统跪了或者张院士在网站上做点手脚,这个小工具就会失效. 今天给大家的版本虽然功能及其简单.界面极端丑陋,但是通过 ...

  7. 正方教务系统客户端 error loading midas.dll.

    在windows xp/7/10上安装了客户端,安装到注册字体一步,没有响应,强行结束.启动客户端,登录,出现  error loading midas.dll. 32位:先将 midas.dll 放 ...

  8. CentOS下安装高版本GCC

    CentOS下安装高版本GCC 微信分享:   有时编译需要用到4.8以上版本的GCC,由于CentOS源没有提供高版本的GCC安装包,这时就不能通过安装包安装.通常的解决方案就是通过编译安装高版本的 ...

  9. 如何让基于.NET 2.0的应用在高版本的系统上运行?

    我们的WinForm项目是基于.NET 2.0开发的,在部署时,发现有些机器没有.NET 2.0,但是即使这些机器有装.NET 2.0 以上的版本,也无法运行我们的程序.这就比较蛋疼了. 我们查了一下 ...

随机推荐

  1. Elasticsearch 配置

    Elasticsearch 配置 Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它: 分布式的实时文件存储,每个字段都被索引并可被搜索 分布式的实时分析搜索引擎 可以扩展 ...

  2. 解决编译错误: 非法字符: '\ufeff' 解决方案|错误: 需要class, interface或enum

    http://www.cnblogs.com/oymx/p/5353235.html 可以 note++打开  在格式里  选择utf-8 无bom格式编码 即可

  3. Java基础之扩展GUI——显示About对话框(Sketcher 2 displaying an About dialog)

    控制台程序. 最简单的对话框仅仅显示一些信息.为了说明这一点,可以为Sketcher添加Help菜单项和About菜单项,之后再显示About对话框来提供有关应用程序的信息. 要新建的对话框类从JDi ...

  4. 管理不同版本ruby和rails的利器——rvm

    近年来,ruby on rails逐渐火了起来,我想各位码农早就耳闻,特别是那些做B/S项目的童鞋,早就想跃跃一试了. 笔者也是初次接触ruby on rails ,我想,对于初学者来说,最好的学习方 ...

  5. android studio 引入第三方类库jar包

    第三方类库jar包 这就简单多了,直接将jar包拷贝到app/libs下,然后在app下的build.gradle中添加此jar的依赖.如下: dependencies { compile 'com. ...

  6. 记录archlinux中安装pcl的大致流程

    贴一下pcl在github上的网址: https://github.com/PointCloudLibrary/pcl/ 从这个网址出发,一般能找到安装的 tutorial.以下只说一下在archli ...

  7. ViewPager With FragmentPagerAdapter

    采用PagerAdapter中的FragmentPagerAdapter来实现页面切换,适用于a handful of typically more static fragments to be pa ...

  8. pickle与shelve

    pickle Example 写入文件 import pickle integers = [1, 2, 3, 4, 5] with open('pickle-example.p', 'wb') as ...

  9. 我的android学习经历34

    用类对象作为ArrayAdapter绑定的基本数据类型(和SimpleAdater效果类似) 一般ArrayAdapter绑定的基本数据类型是String,接下来介绍一下类对象作为基本数据类型: 首先 ...

  10. oracle组查询

    概念: 所谓组查询即将数据按照某列或者某些列相同的值进行分组,然后对该组的数据进行组函数运用,针对每一组返回一个结果. note: 1.组函数可以出现的位置: select子句和having 子句 2 ...