本文作者:EEE
一、背景
事情是这样的,笔者是咱们合粉网络安全俱乐部一员。也是大三党一枚。
身边的很多小伙伴在开学拿到的账号密码都是默认密码,不进行修改,
而默认密码和学号是一样的,很容易被别人窃取利用。
作为正义的小伙伴当然义不容辞的提醒朋友:
“啊啊啊啊,你不能这样啊,这样的话别人就可以看见你的信息啦!!”
“嘿,你这个默认密码会被别人猜出来的!! 别人可以拿着你的信息干坏事的。”
Emmmmm
时间长了,我说的也烦了。大家安全意识仍然很薄弱,那就写个脚本跑一下看看有多少人没有更改密码呢?
二、程序
先通过手动抓包,看一看提交密码之后。 向服务器传递了什么信息
作为爬虫肯定要有 要模拟访问登陆的头文件
根据上面的抓包,我们看见了,是post请求提交了账号和密码。
而传递的信息只有两条
一个是 zjh(账号)
另一个是 mm(密码)
思路是这样,先写个账号生成器。
将生成的账号发送到队列里面
再写一个账号校检器:
因为生成的账号,不一定是存在的,
通过反馈信息,是否为在网账号,如果是在网账号的话,来判断是否为弱口令。
(1)账号生成器部分:
教务系统是九位的学号,
前三位是年级信息,之后分别是 学院,专业,班级,最后两位才是所在班级的学号
举个例子:15 02 07 101
15为15年级
02代表经济管理学院
07代表电子商务专业
1代表电商一班
01代表学号为1
(这个需要看具体情况,前期要做好信息的收集工作,笔者采用的方法是,
问几个其他学院的同学的学号...推算得出)
命名规则基本上是这样的
这样的话 账号生成器就做好了
(2) 账号校检器:
然后通过服务器响应的信息,来判断的几种情况制作账号校检器:
登陆请求参数。
1. 账号生成器生成的账号并不是学生的学号(则提示证件号不存在)
2. 号生成器生成的账号是学生的账号
(1)是弱口令密码 (则提示账号可用)
(2)学生修改过密码 (则提示密码不正确)
开始的准备工作先做好,方便后面的统计
程序将反馈的信息 先放到res_text里面
然后根据find函数获取反馈的关键字。
如果单纯密码错误的话,我们加入到account_valid里面说明账号存在
如果不是证件号不存在的话,那就该是证件号存在了。
重复上一步加入到account_valid里面说明账号存在
并且将这个行放进account_append里面说明账号可用
最后将爬取到的账号进行分析计算
三、总结
以上都是思路部分,那么结果呢?
对没错,整个学校有一万名学生 因为自己没有更改自己的密码,从而可以导致自己的信息泄露。
其中大一新生的防范意识最差,全军覆没。
高达95%的学生没有更改自己的初始密码。
什么,你不信这些能泄露什么?
我就拿我自己的个人学籍界面 给大家看一眼。
其中包括 个人通讯地址,联系方式,高考分数,证件号码,照片等重要个人信息。
就是这样的界面,继续深入的话可以全部把设置弱口令的信息都爬下来
四、思考
本校学生有13600多人,
因意识薄弱未修改初始密码的就有10864人,
全校信息泄露平均比例:79.88%
如果黑色产业链,专门针对对于高校教务系统进行下手,
那么,全国上百万的高校学生信息,因为教务系统的弱口令而引发的信息泄露,情况危在旦夕。
五、声明
文章是为了普及网络安全知识,提高小伙伴的安全意识的同时介绍常见漏洞的特征,挖掘技巧等,若读者因此做出危害网络安全的行为后果自负,与合天智汇以及原作者无关,特此声明。