• xxx升学助考网登录参数跟栈分析


    逆向参数分析:
    思路:

    ​ 如果参数出现的次数比较少,完全可以使用全局搜索

    ​ 如果参数出现比较多,建议使用跟栈

    网站: 下面运行结果

    import base64
    # 解密 
    result = base64.b64decode('aHR0cHM6Ly93ZWIuZXd0MzYwLmNvbS9yZWdpc3Rlci8jL2xvZ2lu'.encode('utf-8'))
    print(result)
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    但是password 出现的太多了,我们又不能逐个打断点进行分析,这次采用跟栈

    在这里插入图片描述

    讲一下跟栈,我们的数据是经过很多次js调用得到的,栈是先进后出,所有最上面的是最后调用的 ,跟栈就是倒推,找到js加密的函数位置

    在这里插入图片描述

    后面表示是js文件的哪一行

    在这里插入图片描述

    注意在233行需要再打一个端点让程序走到这里。(如果不打断点是没有数据信息的 ,打程序终止再这个地方)

    在这里插入图片描述

    在这里插入图片描述

    后面的数字就是我们应该打断点的位置。

    注意断点尽量打在我们想得到数据所在的行,使其还没有执行

    进入passwordEncrypt函数内部:

    在这里插入图片描述

    哎熟悉啊,之前有些过模板套进去即可 ,但是后面获得的数据需要进行相应的转化

    在这里插入图片描述

    先 .ciphertext 然后在转化为 字符串 然后再大写

    代码:

    下面 给出代码:

    var CryptoJS = require('crypto-js')
    
    function AesEncrypt(text) {
        var key = CryptoJS.enc.Utf8.parse("20171109124536982017110912453698"),
            iv = CryptoJS.enc.Utf8.parse('2017110912453698'),
            srcs = CryptoJS.enc.Utf8.parse(text),
            // CBC 加密方式,Pkcs7 填充方式
            encrypted = CryptoJS.AES.encrypt(srcs, key, {
                iv: iv,
                mode: CryptoJS.mode.CBC,
                padding: CryptoJS.pad.Pkcs7
            });
        return encrypted.ciphertext.toString().toUpperCase();
    }
    
    function AesDecrypt(Key,Iv,text) {
        var key = CryptoJS.enc.Utf8.parse(Key),
            iv = CryptoJS.enc.Utf8.parse(Iv),
            srcs = text,
            // CBC 加密方式,Pkcs7 填充方式
            decrypted = CryptoJS.AES.decrypt(srcs, key, {
                iv: iv,
                mode: CryptoJS.mode.CBC,
                padding: CryptoJS.pad.Pkcs7
            });
        return decrypted.toString(CryptoJS.enc.Utf8);
    }
    
    console.log("加密", AesEncrypt("123444"))
    
    
    
    • 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
    • 31

    对比一下:

    在这里插入图片描述

    over!!!

    总结:

    这个案例讲解了如何跟栈,总的来说 我们从结果出发,一步步向前寻找,找到加密或者解密的位置然后再相应的函数打上断点,(这个端点会先被卡住,因为是栈),大家一步步多尝试一下,逆向的学习在于模仿和总结。

  • 相关阅读:
    java计算机毕业设计高校科研信息管理系统MyBatis+系统+LW文档+源码+调试部署
    【cloud Alibaba】(一)服务注册和配置中心——Nacos
    python读取文件由于编码问题失败汇总
    环境影响评价期末考试题库
    JSR303校验(1)
    一切都在变
    ASEMI整流桥GBL610参数,GBL610尺寸,GBL610特征
    没有PDF密码,如何解密文件?
    JAVA毕业设计BS架构考研交流学习平台设计与实现计算机源码+lw文档+系统+调试部署+数据库
    【BOOST C++ 19 应用库】(2)Boost.ProgramOptions
  • 原文地址:https://blog.csdn.net/ak_bingbing/article/details/134322055