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

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

缺陷编号:wooyun-2015-0116506

漏洞标题:21世纪大学英语网络学习平台getshell

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

漏洞作者: Virink

提交时间:2015-05-27 16:49

修复时间:2015-07-16 11:10

公开时间:2015-07-16 11:10

漏洞类型:设计缺陷/逻辑错误

危害等级:中

自评Rank:8

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-05-27: 细节已通知厂商并且等待厂商处理中
2015-06-01: 厂商已经确认,细节仅向厂商公开
2015-06-11: 细节向核心白帽子及相关领域专家公开
2015-06-21: 细节向普通白帽子公开
2015-07-01: 细节向实习白帽子公开
2015-07-16: 细节向公众公开

简要描述:

21世纪大学英语网络学习平台,任意上传,重命名getshell
另外,吐槽一下、、漏洞类型实在是不知道属于哪个、、、

详细说明:

对学校的某些硬性要求感到不满,所以稍微检测一下这个系统“21世纪大学英语网络学习平台”,是复旦出版社的东东。
http://211.71.233.63/21stlearn/
首先,这系统一般都有初始密码,弱口令也可以破!
我随便用一个学号和初始密码就等进去了
进入教学资源-个人资源页面,上传文件。不知道是不是对自己的防护机制满意,反正是可以上传任意文件。当然,就算限制也没问题,反正后面可以重命名的。

图片1.png


上传文件的前提就是安装客户端了,这个就是下载安装就是了

图片2.png


一句话上传成功,接下来我们查看文件

图片3.png


这里的地址没什么用处,21stlearn_upload是个虚拟目录,真实地址稍后揭晓。
我们进入文件管理,重命名。
我们就是利用重命名修改文件路径,让我们的shell能够在可执行目录下执行。
这里不能直接输入../,有过滤。
但是我们可以理由难过神器Burp抓包修改

图片4.png


随便输入一个名字,就a.jsp吧,接下来看我们截到的数据,看看它是怎么样重命名的。

图片5.png


一堆红色的字符串是关键,我们解码字符串看看,这个要解码两次喔

图片6.png


图片7.png


看到了什么,没错!
真实的上传文件目录:upload,而不是21stlearn_upload
结合前面的信息具体路径:D:/LearningSoft/21stlearn/Webapps/upload/1/2015-05-26/65/o.jsp
在结合前面的信息,可以猜测出访问的程序的根目录不在Webapps/下就是在Webapps/learning下
新的文件名:new_name=a.jsp
成功修改之后,继续抓包查看,然后又发现有意思的东西了。
也就是打开或者刷新“文件管理”页面的时候,它是怎么加载显示上传的文件的。

图片8.png


这个文件“file_list2.jsp”可以列目录文件,红果果的遍历漏洞。
http://xxxx/21stlearn_sync/file_list2.jsp
几个可控制的get:dir>要列出文件目录、sub_file>列表控制条件,sub_file=0的时候只显示当前目录文件,空值的时候显示包括子目录文件、var_name没什么用处,控制文件字符串显示的格式。
我们打开新页面访问
http://xxxx/21stlearn_sync/file_list2.jsp?dir=D:/LearningSoft/21stlearn/Webapps/upload/1/2015-05-26/65&sub_file=0

图片9.png


看到我前面上传并且重命名的文件了
我们把dir的值改成网站根目录,不加sub_file=0,结果如图

图片10.png


密密麻麻的文件看的眼花,搜索一下首页索引,找到“index.jsp”

图片11.png


果不其然,就是在learning目录下!
修改dir看看learning目录,这次加上sub_file=0

图片12.png


简洁多了~~虽然由于截图的问题并没有看到第二行最右边的index.jsp
接下来考虑转移的问题!
上传的文件D:/LearningSoft/21stlearn/Webapps/upload/1/2015-05-26/65/a.jsp
我们要让它移动到D:/LearningSoft/21stlearn/Webapps/learning/a.jsp
就要利用../来实现。
即:../../../../learning/a.jsp
前面说过不能直接修改,我们就试着截包修改,幸运的成功了。看!
再来一次重命名为x.jsp,来到new_name=x.jsp,当然是在编码的情况

图片13.png


就是这里啦,x%252ejsp就是两次编码的x.asp。既然是两次url编码
那么../也要两次编码咯
即:%252E%252E%252F%252E%252E%252F%252E%252E%252F%252E%252E%252Flearning%252Fx%252Ejsp

图片14.png


一路执行下去,如果不出意外,我们的shell就会转移到了程序根目录下面。
我们可以遍历目录来看一下是不是成功了

图片15.png


看到了木有,x.jsp出现了

图片16.png


我估计这个是通杀的,但是由于这个系统一般是在内网的,也就不好举出实例了,这个就麻烦审核的同志去看看吧。
PS。让一朋友试了一下,果真成功、、但是他拒绝透漏学校、、郁闷呢
=======================
shell已删除!

漏洞证明:

图片17.png


图片18.png


权限还蛮大的

修复方案:

过滤咯

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-06-01 11:09

厂商回复:

暂未能建立与网站管理单位的直接处置渠道,待认领。

最新状态:

暂无