文章目录
- 🍋前言
- 实现效果
- 成品
- 广告
- 抓包分析
- 一、定位加密文件
- 二、编辑JS`启用本地替换`
- 利用Chatgpt进行代码转换
- 获取计划任务id
- 模拟数据请求
- 最后
🍋前言
由于C站版权太多,所有的爬虫相关均为记录,不做深入!
今天发现github上没有这个东西,抓包后发现软件上的安全防护做的很多,通过对比发现cookie和软件接口请求一样,所以可以通过网页接口代替APP接口最后的数据都是一样的
实现效果
APP登录效果
虽然被短信验证码卡住了,但如果能有其他办法跳过我会选择后者
绕过后效果
通过手机号和密码换算加密后的字符串进行登录换到Cookie 和token
成品
广告
🚀Python爬虫项目实战系列文章!!
⭐⭐欢迎订阅⭐⭐
【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
⭐⭐欢迎订阅⭐⭐
Python爬虫脚本项目实战
抓包分析
一、定位加密文件
找到加密js
代码如下:
var t = $("#t").val();
if(t == "true"){
var transferKey = "u2oh6Vu^HWe4_AES";
pwd = encryptByAES(pwd, transferKey);
console.log(pwd);
}
找到加密方法
代码如下:
function encryptByAES(message, key){
let CBCOptions = {
iv: CryptoJS.enc.Utf8.parse(key),
mode:CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
};
let aeskey = CryptoJS.enc.Utf8.parse(key);
let secretData = CryptoJS.enc.Utf8.parse(message);
let encrypted = CryptoJS.AES.encrypt(
secretData,
aeskey,
CBCOptions
);
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
}
二、编辑JS启用本地替换
1、编辑代码保存开启断点调试
写入console.log(pwd);进行调试,将产生的账号密码,填入我的接口进行请求测试
2、运行后产生账号和密码
复制产生的加密账号和密码给我的程序接口进行测试登录
3、复制到接口程序进行测试
返回登录成功以及cookie数据,表明这个数据的确是通过上述方法进行加密的
利用Chatgpt进行代码转换
由于代码是JS写的,于是我想将他转换成Python,这个事情交到了我的好伙伴Chatgpt的身上了
from Crypto.Cipher import AES
import base64
def encrypt_by_aes(message, key):
key = key.encode('utf-8')
message = message.encode('utf-8')
# 使用AES的CBC模式进行加密
cipher = AES.new(key, AES.MODE_CBC, iv=key)
# 对消息进行填充(使用PKCS7填充)
block_size = AES.block_size
padded_message = message + (block_size - len(message) % block_size) * chr(block_size - len(message) % block_size).encode()
# 加密消息
ciphertext = cipher.encrypt(padded_message)
# 返回Base64编码的密文
return base64.b64encode(ciphertext).decode('utf-8')
# 在这里设置密钥和消息
transferKey = "u2o****S"
message = "qw******"
phone="15*********9"
# 使用函数进行加密
we = encrypt_by_aes(phone, transferKey)
passw = encrypt_by_aes(message, transferKey)
print("加密后的消息:", we)
print("password:", passw)
获取计划任务id
通过cookie换取token后进行请求发送换取pcid
and pcmajorid
#获取签到任务id
cookies = {
'source': '""'
}
headers = {
'Host': 'sx.chaoxing.com',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_0_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0.1 Mobile/15E148 Safari/604.1',
'Referer': 'http://i.mooc.chaoxing.com/',
'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
}
params = {
's': '',
}
response = requests.get('http://sx.chaoxing.com/dgsx/space', params=params, cookies=cookies, headers=headers)
print(response.text)
模拟数据请求
将数据进行替换
data = {
'id': '0',
'type': '0',
'pcid': '7**1',
'pcmajorid': '2***1',
'address': '广东********号',
'geolocation': '9*8.5***2,24.4****7',
'remark': '',
'workStart': '',
'workEnd': '',
'images': '',
'allowOffset': '3000',
'offset': 'NaN',
'offduty': '0',
'changeLocation': '',
}
发送请求后的模拟结果:
登陆成功
p1: 9**4, p2: 24***2
{"success":true,"msg":"打卡成功","info":{"id":100383225,"status":1}}
打卡成功
{'url': 'http%3A%2F%2Fmooc1-2.***.com%2Fvisit%2Fcourses%2Fstudy%3Fs%3D83e3800a41848cf6c0a327c3a174de78', 'status': True}
登陆成功
p1: **4, p2: 3***
{"success":true,"msg":"打卡成功","info":{"id":100383227,"status":1}}
打卡成功
完结撒花,由于版权问题相关代码,不能放出来,以上仅是一个逆向分析记录
最后
以上就是今天的抓包分析
,通过ChatGPT解密还原某软件登录算法实现绕过手机验证码登录的教程,本文章仅用于学习记录
🍋希望你能喜欢我的其他作品
《记一次云之家签到抓包》
《记一次视频抓包m3u8解密过程》
《抓包部分软件时无网络+过代理检测 解决办法 安卓黄鸟httpcanary+vmos》
《Python】记录抓包分析自动领取芝麻HTTP每日免费IP(成品+教程)》
《某课抓包视频 安卓手机:黄鸟+某课app+VirtualXposed虚拟框架》
推荐专栏:
《Python爬虫脚本项目实战》
该专栏往期文章:
《【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)》
🥦如果感觉看完文章还不过瘾,欢迎查看我的其它专栏
🥦如果你也喜欢爬虫抓包分析,请关注我,我还完成过很多独立的项目:例如滇医通等等脚本,但是由于版权的原因下架了,爬虫这一类审核比较严谨,稍有不慎就侵权违规了,所以在保证质量的同时会对文章进行筛选
如果对爬虫感兴趣请收藏或者订阅该专栏哦《Python爬虫脚本项目实战》,如果你有项目欢迎联系我,我会同步教程到本专栏!
🚀Python爬虫项目实战系列文章!!
⭐⭐欢迎订阅⭐⭐
【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
⭐⭐欢迎订阅⭐⭐
Python爬虫脚本项目实战