码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【抓包分析】通过ChatGPT解密还原某软件登录算法实现绕过手机验证码登录


    在这里插入图片描述

    文章目录

    • 🍋前言
    • 实现效果
    • 成品
    • 广告
    • 抓包分析
      • 一、定位加密文件
      • 二、编辑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);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    找到加密方法
    在这里插入图片描述

    代码如下:

    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);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    二、编辑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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    获取计划任务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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    模拟数据请求

    将数据进行替换

    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': '',
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    发送请求后的模拟结果:

    登陆成功
    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}}
    打卡成功
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    完结撒花,由于版权问题相关代码,不能放出来,以上仅是一个逆向分析记录

    最后

    以上就是今天的抓包分析,通过ChatGPT解密还原某软件登录算法实现绕过手机验证码登录的教程,本文章仅用于学习记录

    🍋希望你能喜欢我的其他作品
    《记一次云之家签到抓包》
    《记一次视频抓包m3u8解密过程》
    《抓包部分软件时无网络+过代理检测 解决办法 安卓黄鸟httpcanary+vmos》
    《Python】记录抓包分析自动领取芝麻HTTP每日免费IP(成品+教程)》
    《某课抓包视频 安卓手机:黄鸟+某课app+VirtualXposed虚拟框架》

    推荐专栏:

    《Python爬虫脚本项目实战》

    该专栏往期文章:
    《【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)》

    🥦如果感觉看完文章还不过瘾,欢迎查看我的其它专栏
    🥦如果你也喜欢爬虫抓包分析,请关注我,我还完成过很多独立的项目:例如滇医通等等脚本,但是由于版权的原因下架了,爬虫这一类审核比较严谨,稍有不慎就侵权违规了,所以在保证质量的同时会对文章进行筛选

    如果对爬虫感兴趣请收藏或者订阅该专栏哦《Python爬虫脚本项目实战》,如果你有项目欢迎联系我,我会同步教程到本专栏!

    🚀Python爬虫项目实战系列文章!!
    ⭐⭐欢迎订阅⭐⭐

    【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)
    【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

    ⭐⭐欢迎订阅⭐⭐
    在这里插入图片描述

    Python爬虫脚本项目实战
    在这里插入图片描述

  • 相关阅读:
    经典图割算法中图的构建及实现:Graph-Cut
    模块化打包工具-Webpack插件与其他功能
    【JS】获取hash模式下URL的搜索参数
    【物联网】Arduino+ESP8266物联网开发(二):控制发光二极管 按钮开关控制开关灯
    贪心算法java实现
    全域智慧采摘无人机系统探索
    vivo 在离线混部探索与实践
    回溯算法——好的开始
    【计算机网络】 静态库与动态库
    【Redis高手修炼之路】初识Redis
  • 原文地址:https://blog.csdn.net/qq_35230125/article/details/134056143
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号