正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

admin 2017年5月3日23:55:05评论829 views字数 268阅读0分53秒阅读模式
摘要

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

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

缺陷编号: WooYun-2016-183256

漏洞标题: 正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

相关厂商: 正方教务管理系统

漏洞作者: 甩葱哥丶

提交时间: 2016-03-11 14:40

公开时间: 2016-04-29 16:32

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

危害等级: 高

自评Rank: 20

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

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: 敏感接口缺乏校验 逻辑错误 设计不当 认证设计不合理 设计缺陷

7人收藏


漏洞详情

披露状态:

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

简要描述:

正方教务系统手机APP接口漏洞

详细说明:

这里使用某学院的手机端APP做分析(…………对不起了母校)

下载地址:

code 区域
**.**.**.**:8090/zfmobile_port/upload/SDSYZYXY_JW_V1.1.3.apk

我发现的起源是因为我之前想做个可以做课程表、查成绩、选课的手机APP,然后正方的网页端惨不忍睹,就只能从手机端开始分析了,果断上神器Fiddler:

登陆:

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

嗯,看起来是一个很正常的POST请求,看看内容:

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

=_=||,竟然是明文的。。好吧,不管那么多了,看起来strKey应该是关键了,再看看回应:

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

bj是班级,xm是姓名,,这个程序员英语就这么差?好吧,不管这么多了,我看看有没有sessionid之类的凭据......

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

一定是我打开的方式不对,,为什么没有凭据,那它之后怎么请求的??

我带着这样的疑惑反编译了apk文件..

dex2jar再jd-gui,然后我在com.zfsoft.business.jw.login.b.a包里的a类里找到了这样一段代码:

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

根据代码,可以分析出函数的paramString1参数是用户学号,paramString2参数是密码,其他的就暂且不管,根据抓包应该是静态值,rule参数应该是用户权限等级,(alone应该是单一登陆?),主要就是这个strKey了,于是我导航到了这个函数:

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

好吧,那去b函数:

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

于是在我一番跳之后我发现它的加密方式为:

code 区域
MD5(URLEncode(用户名&密码&YDAFF8EA19E6BAC86E040007F01004EA))
这里最后那段分为两个参数,一个是Alone(Y),一个是加密类中定义的salt值

随即我随手写了个c#程序调试,果然效果一样。。。

然后我怎么调用其他接口呢。。

。。。。

我只能再次抓包,这次在手机APP中选择学生信息功能。

这次发了5个包,主要信息在前两个包中,后面三个都是空的soap包。

第一个是这个:

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

看Action里写的,貌似是获取头像接口,果然回应里是一个base64字符串:

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

我试着解了一下,发现了jpg头:

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

嗯,那么我看看它是怎么请求的。

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

又是strKey,好吧,那我倒想看看你是怎么请求的,然后我在com.zfsoft.studentinfo.business.studentinfo.c.c包中的a类里发现了请求的方法:

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

经过我又一轮跳来跳去,我发现strKey的加密方式是这样的:

code 区域
MD5(URLEncode(用户名DAFF8EA19E6BAC86E040007F01004EA))

!!!!!

!!!!!

!!!!!

仅仅只是学号加上salt值就行!!!

那么其他人呢?

为了证明这个猜想,我随手写了个程序:

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

!!!真的是这样的!!!(感觉我这样的剧情,下一步可以遍历下来全校所有的证件照,然后搞个证件照选美,然后再创办一个某社交网站,然后出任总经理,当上CEO,迎娶白富美,走上人生巅峰。。。。。)

我兴奋的到Fiddler里打开第二个包:

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

再看看回应:

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

经过分析,加密方式与获取头像的机密方式一模一样。。

随即我又分析了获取课程表,它的strKey加密方式为:

code 区域
MD5(URLEncode(用户名&学年&学期DAFF8EA19E6BAC86E040007F01004EA))

后面获取成绩等等功能加密方式都如出一辙。

在apk文件中我找到了config.xml文件,里面写着学校教务系统服务器接口地址,也就是说这是一套通用系统,且只要是学校里安装了该系统,使用通过同样的方法,同样可以获取别的学校中的学生信息,可以说是影响巨大,望尽快修复。

漏洞证明:

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

正方教务系统手机端APP可查任何学生照片信息成绩(未登录)

修复方案:

修改权限逻辑。。。这个错误真的不应该犯。

版权声明:转载请注明来源 甩葱哥丶@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:14

确认时间:2016-03-15 16:32

厂商回复:

CNVD未直接复现所述情况,已由CNVD通过软件生产厂商公开联系渠道向其邮件通报,由其后续提供解决方案并协调相关用户单位处置。

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

登陆后才能进行评分


评价

  1. 2016-03-11 15:05 | 木易 ( 普通白帽子 | Rank:347 漏洞数:70 | 不,,不要误会,我不是针对谁,我是说在座...)

    2

    有点意思

  2. 2016-03-12 02:14 | ωang ( 路人 | Rank:6 漏洞数:3 | 漏洞不是一天就能学会挖掘的~)

    1

    不明觉厉

  3. 2016-04-15 21:20 | Soulmk ( 实习白帽子 | Rank:58 漏洞数:18 | 好好学习才是正事~)

    1

    反编译666

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin