#事情起因 在网课期间,学校app新上线了一个健康打卡功能,每天都要按时打卡,不打卡会被通报,异地打卡也会被通报,每天打卡很麻烦。因为本人会一点点安卓,就想弄个自动打卡软件,于是就有了以下发现。
先对软件抓了个包,发现没有任何验证,啥也不需要,post数据直接信息加学号就能提交,连登陆状态验证都没有,这样更好,可以做一个大众版的自动打卡工具。惠及每一个的同学。经过一翻折腾,软件做好了,但因为技术有限,功能有很大的缺陷,但今天的重点不是自动打卡就不细讲了。
##那么我的发现又是什么呢?
在自动打卡软件完成以后,我出于好奇心又对登录操作抓了一下包,发现登录的时候抓到的返回信息全是明文,而且软件里的所有信息全是明文。至此,我想到了个人信息里有个上传头像的接口,试着抓了一下包,和打卡一样,post提交的时候只需要图片和学号,没有任何验证,并且post返回值会返回所有明文个人信息包括登录密码身份信息等敏感信息(这软件承包商简直是糊弄人,后来发现是移动公司承包的,就不奇怪了)。
##那么现在就解释一下我们可以通过这样简单的操作到达什么样的效果呢? 只需要一个学号,即可查到该学生的所有个人信息包括姓名、性别、身份证、籍贯、手机、邮箱等非常敏感的个人信息。
#####后来我想到学校有两个app一个主要面向教学事物,另一个主要面向学生事务。我上述提到的操作都是在面向学生事务的app里进行的,然后我又想到了教务app估计也有一样的毛病。
于是就去试了一下,发现确实有一样的漏洞,获取的信息也大致相同,不过也多了一些信息,包括证件照、手机号、QQ号、课程表。
###同时我发现的一个致命漏洞,刷新了我对这款软件的认知下限
这两款软件都可以通过post上传图片获取返回值从而获取信息,而这些信息中包括app的登录密码,不过这个登录密码是通过MD5加密的,所以我也没太在意(一因为这两款软件在我面前已经相当于没有密码了),但是在我在教务app里抓了几个不同的账号的信息之后发现密码竟然都一样,于是把MD5查询了一下发现密码是123456,到这里你可能也会和我一样以为是恰巧是这几个人没改初始密码。但是我无意中试了试用123456登录我自己的账号,发现也能登录,那就有点不对劲了,因为我可是改了密码的,于是试了试我自己设置的密码也能登录。
到这里我是真的彻底无语了,经过测试发现,这款app无论你更不更改初始密码,123456都可以登录你的账号。也就是说你改了初始密码之后你就拥有了两个密码,一个是123456一个是你自己设置的密码。
####那么问题来了,这样和没有密码有什么区别呢?