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

逆向参数分析:
思路:

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

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

网站: 下面运行结果

import base64
# 解密 
result = base64.b64decode('aHR0cHM6Ly93ZWIuZXd0MzYwLmNvbS9yZWdpc3Rlci8jL2xvZ2lu'.encode('utf-8'))
print(result)

在这里插入图片描述

但是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"))


对比一下:

在这里插入图片描述

over!!!

总结:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

acmakb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值