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

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

缺陷编号:wooyun-2014-073449

漏洞标题:通用型正方教务(通杀各版本)存在注入(不需登陆)+获得webshell+提权内网漫游

相关厂商:杭州正方

漏洞作者: sin

提交时间:2014-08-22 14:04

修复时间:2014-10-06 14:06

公开时间:2014-10-06 14:06

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:16

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-08-22: 细节已通知厂商并且等待厂商处理中
2014-08-27: 厂商已经确认,细节仅向厂商公开
2014-09-06: 细节向核心白帽子及相关领域专家公开
2014-09-16: 细节向普通白帽子公开
2014-09-26: 细节向实习白帽子公开
2014-10-06: 细节向公众公开

简要描述:

某个接口页面存在oracle盲注,可以获得当前用户数据库,dump教师用户表,分析密文加密特征(前人研究成果+基友助攻),破译加密的密码。前台管理员登陆,后台文件上传基于黑名单原理,过滤u完全,上传特定文件,生成一句话。菜刀连接,大马提权。

详细说明:

1.jpg


百度搜索:“欢迎使用正方教务管理系统!请登录” 可获得几十页的词条。足见其通用。
存在注入点的页面为http://域名(ip)/xsxjxtdl.aspx
随便找个例子,做演示。

2.jpg


通过burp suite拦截,然后sqlmap加载进行post注入。

3.jpg


漏洞证明:

4.jpg


5.jpg


确定存在注入,为oracle的时间盲注(复现时可能比较纠结,时间可以加大一点,一次跑不出,可以跑2次),一般人可能到此就放弃了,但是像我们比较笨的人,只有更努力一点了。不幸中的万幸,前辈们开拓的很深入(致敬),正方的数据库结构已经很明了了。用户密码加密方式,乌云知识库也有讨论。
ps:①数据库结构: WooYun: 69个高校正方教务管理系统数据库任意操作 (向2位师兄致敬)
②加密方式:http://drops.wooyun.org/tips/847
WooYun: 方正教务系统sql注射
一般可以用--sql-shell进行快速提取(oracle权限分配比较死,权限比较低)。切正方如果默认数据库名改变,跑不出表的。
select YHM,KL from "YHB" where YHM like 'jw%';
权限高的可以,直接dump了。
-D ZFXFZB -T YHB -C “yhm,kl” --start 1 --start 50

6.1.jpg


会得到一些,用户名和密码。(配合社工效果更佳,搞到管理员和老师的账号应该不是很难)

7.jpg


接下来,又是一个很苦逼的活。知道账号,密码很难解出来,只有试探弱密码,好在很多老师账号密码一致。这里要感谢基友彗星的全力助攻。根据乌云知识库的原理,写出了软件。

8.1.jpg


8.3.jpg


8.jpg


基友说,凭借小学英语和运气的组合,终于搞出了key。
然后,然后...发现乌云已经有人爆出了key。
依稀记得当时的感觉,就像千万只小学生中从心中奔腾而过。:(
好,接下来。进管理后台,拿webshell。后台过滤的还是蛮严格的。
asp.aspx.asa.1.asp;.jpg等等...均失败
然后灵光一闪,以前貌似看过ashx可以.net中生成一句话的。
于是:

9.jpg


10.jpg


以免有的同学,友情监测,还是打码为好。

12.jpg


学校机器一般年老失修,,,提权简直是so easy。
然后读出,管理密码。
嗯,大家猜对了,教务管理的密码惊人的一致。减少了一些提权之繁琐。
上传图片太痛苦了,so卡,就不上图了(不知是乌云的问题还是我的网速问题)。
罗里吧嗦的说了这么多,其实就是锲而不舍,才能达到最后,也没什么特别的。

修复方案:

修复的话:①页面做好过滤,参数化传入,防止注入
②后台上传也要过滤好。
③再就是校方,软件及时更新,教师密码安全普及一下。服务器上安全狗什么的,不要总是清一色的360安全卫士。(安装360最近的服务器管家也好,360大哥我错了,不要打我)

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-08-27 10:15

厂商回复:

CNVD确认所述情况,未完全复现(确认第一层风险),已经根据以往建立的邮箱联系渠道向软件生产厂商通报。

最新状态:

暂无


漏洞评价:

评论

  1. 2014-08-22 14:11 | 漫步云端 ( 普通白帽子 | Rank:196 漏洞数:33 | I'm Ramble!)

    我是来看正方的~

  2. 2014-08-22 14:13 | 天地不仁 以万物为刍狗 ( 普通白帽子 | Rank:977 漏洞数:264 | 天地本不仁 万物为刍狗)

    前排 带我装逼 带我飞 CCAV 给个特写

  3. 2014-08-22 14:16 | 玉林嘎 ( 普通白帽子 | Rank:758 漏洞数:96 )

    第一次那么前排

  4. 2014-08-22 14:18 | pandas ( 普通白帽子 | Rank:585 漏洞数:58 | 国家一级保护动物)

    好腻害

  5. 2014-08-22 14:26 | 动后河 ( 实习白帽子 | Rank:51 漏洞数:13 | ☭)

    太天真了,居然加了“通用型”三个字

  6. 2014-08-22 14:27 | 紫衣大侠 ( 普通白帽子 | Rank:201 漏洞数:21 | 愿结天下有识之士)

    前排会火~~

  7. 2014-08-22 14:29 | 1angxi ( 路人 | Rank:2 漏洞数:1 | 研究僧,安全新手,我只是来打酱油的...)

    这么像我前两天发的那个洞。。。坐等公开

  8. 2014-08-22 14:29 | scanf ( 核心白帽子 | Rank:1232 漏洞数:186 | 。)

    我是来看正方的~

  9. 2014-08-22 17:25 | wellsun ( 路人 | Rank:0 漏洞数:1 | www.wellsun.com)

    哥们现在正方的加密是什么方式?求交流,Q 7520024

  10. 2014-08-22 17:35 | 大大灰狼 ( 普通白帽子 | Rank:248 漏洞数:53 | Newbie)

    帮我改成绩

  11. 2014-08-22 17:53 | milk ( 路人 | Rank:21 漏洞数:5 | 美女,你肥皂掉了)

    不知道我们山村里那个小学有没有这个系统,要是有的话,帮我改成绩可好?

  12. 2014-08-22 17:55 | chock ( 实习白帽子 | Rank:58 漏洞数:15 | 今夜我们都是wooyun人,我们一定要收购长亭)

    sin你好,cos呢?

  13. 2014-08-22 18:00 | scanf ( 核心白帽子 | Rank:1232 漏洞数:186 | 。)

    不知道读大学的时候,方正还在用没有

  14. 2014-08-22 18:04 | reality0ne ( 路人 | Rank:18 漏洞数:7 )

    新版改成md5了。。

  15. 2014-08-22 18:26 | scanf ( 核心白帽子 | Rank:1232 漏洞数:186 | 。)

    @reality0ne 那不方便我们了吗?哈哈哈

  16. 2014-08-22 20:42 | 夏殇 ( 路人 | Rank:30 漏洞数:21 | 不忘初心,方得始终。)

    这个,求细节

  17. 2014-08-23 11:17 | error ( 普通白帽子 | Rank:415 漏洞数:96 )

    通杀各版本肯定不信!新版加密使用oracle自带加密函数,你能破才叫叼;后台倒是可以上传ashx马

  18. 2014-08-24 19:12 | wellsun ( 路人 | Rank:0 漏洞数:1 | www.wellsun.com)

    @error 确定吗?URL 里的XH也是加密了,是不是MD5加密

  19. 2014-08-24 19:16 | scanf ( 核心白帽子 | Rank:1232 漏洞数:186 | 。)

    @楼上 等细节公开再扯

  20. 2014-08-26 01:55 | wellsun ( 路人 | Rank:0 漏洞数:1 | www.wellsun.com)

    2012的新版本(2013年10月份最新版),基本全国都使用一个版本的。通杀是有可能的,如果他能逆出那个加密的话。

  21. 2014-08-26 07:16 | 好基友一辈子 ( 普通白帽子 | Rank:138 漏洞数:37 )

    貌似要忽略

  22. 2014-08-26 10:00 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @scanf md5为什么方便,原来的可以直接解密的不是更方便,MD5的话有个万一就悲剧了

  23. 2014-08-26 10:03 | s3xy ( 核心白帽子 | Rank:832 漏洞数:113 | 相濡以沫,不如相忘于江湖)

    @wefgod 同意。原来的方法是100%成功率的话,变md5就是70%了。

  24. 2014-08-26 10:05 | scanf ( 核心白帽子 | Rank:1232 漏洞数:186 | 。)

    哦,这样啊,方正我没有解密脚本,所以觉得的MD5好一些..

  25. 2014-08-26 11:15 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @s3xy 是啊

  26. 2014-08-27 16:56 | tkey ( 路人 | Rank:2 漏洞数:1 | try harder)

    兄弟 一个学校的 你也太高调了 我都知道你是谁了

  27. 2014-08-27 17:02 | scanf ( 核心白帽子 | Rank:1232 漏洞数:186 | 。)

    洞主小心啊!!!!楼上认出你了@tkey @sin

  28. 2014-08-27 23:59 | ~奈何~ ( 路人 | Rank:2 漏洞数:1 | web安全有点兴趣)

    @1angxi 求细节, 是那个照片遍历接口吗? 求交流+Q:1535068423

  29. 2014-08-28 19:48 | cooFool ( 路人 | Rank:0 漏洞数:2 | 终于通过了。)

    求指导,谢谢

  30. 2014-08-28 20:50 | 海绵宝宝 ( 普通白帽子 | Rank:243 漏洞数:50 | 唯有梦想与好姑娘不可辜负.)

    求私信详情,WB感谢QAQ

  31. 2014-08-29 11:14 | My5t3ry ( 实习白帽子 | Rank:31 漏洞数:13 )

    看描述好像我去年提交裤带的这个:http://loudong.360.cn/vul/info/id/1777

  32. 2014-08-29 14:01 | cooFool ( 路人 | Rank:0 漏洞数:2 | 终于通过了。)

    @My5t3ry 求详细。我要试试我们学校、求带各种,rmb感谢啊@sin

  33. 2014-09-03 17:55 | wellsun ( 路人 | Rank:0 漏洞数:1 | www.wellsun.com)

    欢迎大家加入通杀教务系统漏洞QQ 群: 310068074

  34. 2014-09-10 16:52 | ki11y0u ( 普通白帽子 | Rank:104 漏洞数:23 | 好好学习,求带飞~~~~~~~~~~~~~~~~~~~~~~...)

    膜拜大牛~

  35. 2014-09-11 11:03 | 发条橙子 ( 路人 | Rank:19 漏洞数:6 | ∑(っ °Д °;)っ)

    public static string jiemi(string PlainStr, string key){ string NewStr =""; int Pos = 1; if ((Strings.Len(PlainStr) % 2) == 0) { string Side1 = Strings.StrReverse(Strings.Left(PlainStr, (int) Math.Round((double) (((double) Strings.Len(PlainStr)) / 2.0)))); string Side2 = Strings.StrReverse(Strings.Right(PlainStr, (int) Math.Round((double) (((double) Strings.Len(PlainStr)) / 2.0)))); PlainStr = Side1 + Side2; } int _Vb_t_i4_0 = Strings.Len(PlainStr); for (int i = 1; i <= _Vb_t_i4_0; i++) { string strChar = Strings.Mid(PlainStr, i, 1); string KeyChar = Strings.Mid(key, Pos, 1); if (((((Strings.Asc(strChar) ^ Strings.Asc(KeyChar)) < 0x20) | ((Strings.Asc(strChar) ^ Strings.Asc(KeyChar)) > 0x7e)) | (Strings.Asc(strChar) < 0)) | (Strings.Asc(strChar) > 0xff)) { NewStr = NewStr + strChar; } else { NewStr = NewStr + StringType.FromChar(Strings.Chr(Strings.Asc(strChar) ^ Strings.Asc(KeyChar))); } if (Pos == Strings.Len(key)) { Pos = 0; } Pos++; } return NewStr;}解密是这个吗

  36. 2014-09-11 12:57 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    @tkey 兄弟,你不要吓我。 哎,别人家的孩纸9月7日,正方sql注入提交到360收获2000软妹币,有点受伤呐。

  37. 2014-09-16 14:06 | pandas ( 普通白帽子 | Rank:585 漏洞数:58 | 国家一级保护动物)

    oracle time-based-blind 略忧伤阿

  38. 2014-09-16 14:57 | ki11y0u ( 普通白帽子 | Rank:104 漏洞数:23 | 好好学习,求带飞~~~~~~~~~~~~~~~~~~~~~~...)

    这个比较叼。

  39. 2014-09-20 11:36 | ki11y0u ( 普通白帽子 | Rank:104 漏洞数:23 | 好好学习,求带飞~~~~~~~~~~~~~~~~~~~~~~...)

    @sin 求交流,我也提交了个。

  40. 2014-09-20 13:33 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    @ki11y0u 其实各个版本均有各种各样的洞,不过以前的密码加密了,碰撞key稍微麻烦点。现在md5密码,就爽歪歪呀。

  41. 2014-10-02 19:27 | bitemebitch ( 路人 | Rank:23 漏洞数:5 | 技能树龟速点亮中...)

    华农:202.116.160.17/xsxjxtdl.aspxsqlmap 没能redirect :((((((((

  42. 2014-10-02 20:45 | 夏殇 ( 路人 | Rank:30 漏洞数:21 | 不忘初心,方得始终。)

    @bitemebitch 你说说你为啥要找华农

  43. 2014-10-02 20:51 | bitemebitch ( 路人 | Rank:23 漏洞数:5 | 技能树龟速点亮中...)

    @夏殇 莫非是师兄....?

  44. 2014-10-02 20:51 | ki11y0u ( 普通白帽子 | Rank:104 漏洞数:23 | 好好学习,求带飞~~~~~~~~~~~~~~~~~~~~~~...)

    @夏殇 夏老大,你们学校也是正方吗?

  45. 2014-10-02 20:53 | 夏殇 ( 路人 | Rank:30 漏洞数:21 | 不忘初心,方得始终。)

    @bitemebitch 我去,QQ多少,私聊

  46. 2014-10-02 20:53 | 夏殇 ( 路人 | Rank:30 漏洞数:21 | 不忘初心,方得始终。)

    @ki11y0u 正方多的是了

  47. 2014-10-02 21:01 | bitemebitch ( 路人 | Rank:23 漏洞数:5 | 技能树龟速点亮中...)

    @夏殇 →_→ 在你的个人主页留了评论

  48. 2014-10-03 14:07 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    @夏殇 @bitemebitch 感觉华农很无辜啊。总是被受伤,O(∩_∩)O

  49. 2014-10-03 15:01 | 夏殇 ( 路人 | Rank:30 漏洞数:21 | 不忘初心,方得始终。)

    @sin 我感觉你是广东的

  50. 2014-10-06 01:50 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    @夏殇 貌似有次追踪到了一个人的ip,不知是不是你。挂流量矿石,很没品额。都没拿0day打你们学校教务系统和一卡通系统。人家建设网站都挺不容易的,不要乱搞。

  51. 2014-10-06 12:13 | 夏殇 ( 路人 | Rank:30 漏洞数:21 | 不忘初心,方得始终。)

    @sin 我去,怎么会是我,我从来不搞破坏的...流量矿石是啥我都不知道,怎么回事

  52. 2014-10-06 12:58 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    哦,那就好。估计是另外的人吧。

  53. 2014-10-06 12:59 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    @夏殇 哦,那就好。估计是另外的人吧。

  54. 2014-10-06 13:09 | 夏殇 ( 路人 | Rank:30 漏洞数:21 | 不忘初心,方得始终。)

    @sin 我们学校教务被搞过?怎么没知道这回事,我就知道前段时间貌似有个挂博彩还是什么的上去

  55. 2014-10-06 14:48 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    @夏殇 211端口可以执行sql命令,,,然后就没有然后了。以前的洞。

  56. 2014-10-06 17:22 | 3rr0r ( 路人 | Rank:0 漏洞数:2 | 努力学习!)

    实验未果 @sin 是因为尝试次数不够还是?的确是2012年的正方[17:16:19] [INFO] parsing HTTP request from 'c:\1.txt'[17:16:19] [INFO] testing connection to the target url[17:16:20] [INFO] testing if the url is stable, wait a few seconds[17:16:21] [INFO] url is stable[17:16:21] [WARNING] reflective value(s) found and filtering out[17:16:21] [WARNING] heuristic test shows that POST parameter 'tbSFZH' might not be injectable[17:16:21] [INFO] testing for SQL injection on POST parameter 'tbSFZH'[17:16:22] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'[17:16:24] [INFO] testing 'Oracle AND error-based - WHERE or HAVING clause (XMLType)'[17:16:25] [INFO] testing 'Oracle AND time-based blind'[17:16:27] [INFO] testing 'Generic UNION query (NULL) - 1 to 10 columns'[17:16:43] [WARNING] POST parameter 'tbSFZH' is not injectable[17:16:43] [CRITICAL] all parameters appear to be not injectable. Try to increase '--level'/'--risk' values to perform more tests. Also, you can try to rerun by providing either a valid value for option '--string' (or '--regexp')

  57. 2014-10-06 17:29 | 3rr0r ( 路人 | Rank:0 漏洞数:2 | 努力学习!)

    providing either a valid va[17:26:50] [WARNING] HTTP er403 (Forbidden) - 57 times

  58. 2014-10-06 19:04 | 夏殇 ( 路人 | Rank:30 漏洞数:21 | 不忘初心,方得始终。)

    @sin 不懂*。*

  59. 2014-10-06 22:15 | reot ( 路人 | Rank:2 漏洞数:1 | 新人)

    wbwj目录貌似被限制脚本执行怎么破。。

  60. 2014-10-07 14:11 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    @3rr0r @reot 貌似正方已经出了补丁,上面的注入,和上传webshell估计没什么用了。

  61. 2014-10-07 22:05 | ki11y0u ( 普通白帽子 | Rank:104 漏洞数:23 | 好好学习,求带飞~~~~~~~~~~~~~~~~~~~~~~...)

    @sin [21:54:24] [WARNING] POST parameter 'tbSFZH' is not injectable[21:54:24] [CRITICAL] all tested parameters appear to be not injectable. Try toincrease '--level'/'--risk' values to perform more tests. Also, you can try to rerun by providing either a valid value for option '--string' (or '--regexp')测试无果。

  62. 2014-10-07 22:06 | 基佬库克 ( 实习白帽子 | Rank:75 漏洞数:15 | 简介什么的是直接爆菊吧..)

    密码早md5.。这是多老的版本啊。。那个任意文件上传也早没了。。这个通用是有多老版本。

  63. 2014-10-08 09:57 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @基佬库克 目测已经很多都升级了,没有这个注入了,这个注入有点低级……现在的应该都不会有了

  64. 2014-10-08 11:43 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    @基佬库克 想得美,还想任意文件上传。 软件名称:教务管理系统(过渡版)发布日期:2013年04月28日, 16:59:34 这个版本下估计有戏。但你要会玩。从各处的数据库解密和教师密码解密的key看,还是比较新的版本。@wefgod

  65. 2014-10-08 13:48 | 路人N ( 路人 | Rank:12 漏洞数:8 )

    function getMD5(vin_string IN VARCHAR2) RETURN VARCHAR2 IS temp varchar2(40);BEGIN temp := dbms_obfuscation_toolkit.MD5(input => utl_raw.cast_to_raw(vin_string)); RETURN '{MD5}' || utl_raw.cast_to_varchar2(utl_encode.base64_encode(temp));END getMD5;表名看这里http://61.153.27.181:93/db.asp?action=get&sql=select%20table_name%20from%20user_tables;

  66. 2014-10-08 19:14 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    @路人N 可以执行sql,30秒可getshell,然后就没有然后了,这个很危险的。下次不要随便发出来额。

  67. 2014-10-08 19:35 | hack雪花 ( 实习白帽子 | Rank:67 漏洞数:18 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)

    @sin 求教

  68. 2014-10-09 08:39 | 路人N ( 路人 | Rank:12 漏洞数:8 )

    @sin 这个之前提交乌云了,没审核通过。。

  69. 2014-10-12 13:49 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    @路人N 没事慢慢来,总是会被认可的。

  70. 2014-10-16 09:28 | 你又不是她 ( 路人 | Rank:0 漏洞数:1 | ~。~)

    @sin 你提交的新中新一卡通的 能提前告知下么

  71. 2014-10-16 10:48 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    @你又不是她 很早前就提交了,你可以要求360公开额。

  72. 2014-10-16 16:22 | 好基友一辈子 ( 普通白帽子 | Rank:138 漏洞数:37 )

    @路人N 求详细,,正方?

  73. 2014-10-19 03:29 | wellsun ( 路人 | Rank:0 漏洞数:1 | www.wellsun.com)

    @楼上所有想捅正方菊花的孩子们.正方因为在之前收到很多漏洞递交,对2010版本进行了大升级为2012,目前以普及所有正方用户,那么,2012版本有什么特别呢?① 部门权限的C/S客户端的传输端口进行了MD5加密.且仅对内网开放② 源码根目录添加2个文件夹,分别为"style"app_config"一个用于过滤你的SQL&&;另外一个是用于APP接口.③ 老用户登录必须强制修改密码为数字+英文来避免弱口令并且使用MD5加密。④ 数据库IP并且仅对内网IP开放.⑤ 根目录下删除了多余无大用处的页面.且每个页面都有验证权限,除了xsxjxtdl.aspx。 ⑥ 正方自带的"安全巡检"升级,并且存在文件异动检测 ⑦ 太多了,我就不一一说了,另外给正方递交漏洞的那些人能不能保守点,人家正方在WOOYUN连厂商都不注册个,一个劲的递交啥? 待你需要曰时,或者需要源码以及各种的,你才知道可恶! 不过需要材料研究的可以加群:310068074 不客气,请叫我红领巾