前言:
又到了一年一度的升学季,在空间看到同学讨论交学费的事情,于是我进入支付宝的学校订阅号,查询的界面非常的简洁,只需要输入学号即可。于是我想输入别人的学号是不是能查别人的信息呢?
果然发现有点东西
观察网站:
于是复制了页面的超链接地址,在电脑上打开,发现这个页面没有对打开的渠道做限制(比如说只能在支付宝内打开),抓包发现提交学号时数据如下
tipesShow不知道是什么,默认是1,schNo是学校代码,杭电的代码是10336,stuNo是学号,只要递增学号 然后post这个地址 就可以获得全校的信息了
具体思路:
制作学号规则==》信息查询(爬取)==》存入mysql
Coding:
根据post返回的信息可以得知,数据的位置,我们用正则表达式来提取字符串,存入我数据库,数据库的字段设计如下
下面是我完整的代码,用的是python2.7语法
代码很简单 导入一个python数据库的包MySQLdb,再利用urlib2包爬取数据,由于对方的服务器没有任何一点点的反爬措施,所以整个过程非常的顺利,不用设置延时,访问很快
程序执行结束:
部分截图:有图有真相
学号规则很好找的,我从教务处的补考名单上大概估算出16级学生的学号是从16010xxx开始到16272xxx结束。
运行效果:
遇到的一些问题:
1.由于python2对于utf8的编码不是很友好,出现了很多乱码的情况,需要将数据库字符集,表的字符集等等都统一成UTF-8
2.虽然对方服务器没有反扒措施,但是一个个递增学号访问还是有点慢,解决方法是可以多线程运行程序
总结:
- 程序员偷懒,验证码不设定,简单的说,是没有安全概念
往深的说,是对学生信息的不负责。想要解决有很多方法,比如user-agint,IP访问频率的设定,图形验证码,短信验证码等等。
说些别的:
去年也就是2017年交学费的时候,学校还有一种缴费渠道是交通银行app里面点击生活,点击生活缴费,也只需要输入学号,里面的信息更加可怕,不仅有姓名还有你的身份证号,幸运的是今年这个缴费渠道关闭了,但是我试着输入别的学校的学生学号,发现这个安全隐患还是存在的。
如果有了身份证号能做什么?大多人的数字杭电帐号密码还是默认的,Hdu1+身份证后6位,我可以知道这个人平时的消费金额地点,手机号码,家长联系方式,考试成绩,家庭地址,寝室地址,个人课表等等等等.....
诈骗思路:
不教坏大家了,希望大家小心防范,提高安全意识。已经将这个问题反馈给网站作者。
大神,如何找你,我qq657752327,有需求
1143170465,交流一下。QQ
高三的资源呢?
505485885如果可以,加我q我需要这种资源
怎么找你,我需要
很强
想问一下你是用哪种方式实现手机APP抓包的
fidder和charles都可以 我是后者 。配置过程比较麻烦 不懂可以问我
好的,我一般有的是fiddler,咳咳爱你
muaaaaa
科科
在哪里下载
我离大佬就差这么一点.jpg 。这种典型的查询界面我感觉甚至还有可能有sql注入
外包的网站大多都不靠谱,没有程序员来持续的维护,sql注入也是有可能的,看他有没有对input框的内容先做一步过滤了