看到学校这简陋的web端,怀着一片对学校的热爱感激之情,今天闲来无事的我来搞些事情-。-!。

1.思路实现

最开始的思路是,抓包找到登录接口,然后弱口令猜解,后面很蛋疼的发现学校登录接口有次数限制。
记一次学校密码猜解
这就让我很难受了,后面仔细分析了下学校的接口,突然想到学校还有一个微信平台,立马就去公众号,把微信公众号的接口爬了一遍,发现有一个逻辑漏洞,教师端(可能还包括学生)的绑定申请没有次数限制,更让我感激涕零的就是还没有验证码,这意味着我就不用再专门去训练模型去解决验证码了,
记一次学校密码猜解
然后就是账户的问题了,我想通过某个接口获取所有教师的id和一些基本信息,之前有写过一个爬虫,爬取了学生门户的基本接口,用了快一个多小时分析了一下所有接口,
发现了一个可以获取所有教师姓名和id的接口。
记一次学校密码猜解
这是一个教师行程表的接口,它不需要任何的权限来访问,只要在后面加上教师的id就可以获取。所以写了一个脚本来批量的获取。
记一次学校密码猜解
之前有对学校的网站进行分析过,所以这里我认为学校教师的id是以110开头的6位数,经过简单的爬取和整理,总共有500多名教师的姓名和id这都是猜解密码的必要条件,做到这里后我就在想,有没有更适合的接口来获取更多的信息,我想我之前爬的是学生门户的接口,教师的因为那时候有事情耽搁了,在做这个之前,我已经有系辅导员账号了(之前有试过猜解,结果就真的成了。运气成分大,),花了大概半小时,将一些基本的交互接口过滤了下来,遗憾的是没有我想要的接口,幸运的是,在我再次抓包的过程中,看到了一个异步请求
记一次学校密码猜解
这是请求的网址,后面看了下respond,本来快要放弃的心立马就兴奋起来了,这个接口返回了学校所有的教师信息,id 手机号等等,不过需要教师权限才能请求,这可难不到我,我用了辅导员的账号,进行模拟请求,
然后对请求到的信息进行整理后,记一次学校密码猜解
我想要的信息基本都有了,整合了一下有1700多条信息,也就是说我之前的猜测是错的。可能有些是没有权限的杂务人员,不过问题8大。接下来就是对获取到的信息进行拼接成可能的密码,然后post到微信绑定接口上去,根据返回的信息进行判断再存入字典里。
部分代码:
记一次学校密码猜解
只是简单进行猜解,因为现在很多人密码习惯用手机号码,姓名首字母等等,前面我有对姓名进行处理,代码没有经过太多处理,赶集一样写出来的,满足需求就行-。-/,这里我花了一点时间来梳理了一下思路,基本思路大概就是这样子了。
经过漫长的重复请求,
记一次学校密码猜解
记一次学校密码猜解
不出所料,基本都是错的,但目前为止已经猜解了20多个账号了,,,,还在跑。难受-。-

最后

最后想说的是,这只是我闲来无事所做的,没有想要搞破坏,我会联系学校门户的开发平台,这也提醒我们不要用一些过于简单的密码,更让我知道了一些小逻辑错误可能会造成一些大的问题。
第一次写博客,看看就好哈哈哈哈,

相关文章: