吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1348|回复: 14
上一主题 下一主题
收起左侧

[Web逆向] 某房指数一个简单的aes加解密。

  [复制链接]
跳转到指定楼层
楼主
zzyzy 发表于 2025-4-12 14:35 回帖奖励
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!


目标:请求参数signcode,和请求结果data。
网站:aHR0cDovL3d3dy5jY2hpbmRleC5jb20vSG9tZS9pbmRleA==

1.先看一下控制台响应数据,发现所有请求参数都是一个signCode,还是加密后的结果,对应结果中数据data也是一样,不同的数据加密后的字符串长度不同。(可以大胆的猜测一下对称加密,常见的对称加密aes,des等,sm4也是一个对称加密算法,说不定就是其中一个呢)




2.像这种加密后的字符串,可以直接hook住JSON中的parse和stringify,还是很好用的。也可以直接搜索关键字,signCode,只有三个,数量比较少,后面两个可以直接添加断点。




用hook和关键字搜索都可以定位到signCode生成的地方 w(JSON.stringify(r)),打印一下值看看结果。




加密过程就在w这个函数中实现的,我们直接进入到这个函数中看看发生了什么。



在函数w中,传入一个参数e,然后定义了一个字符串变量t,在下面可以看到这是一个aes加密的js代码,使用ECB (Electronic Codebook) 模式,PKCS#7填充。e是需要加密的字符串,n是key转换后的words数据,其中b(t)的结果就是key(函数b就在w上面,是一个rsa解密的,有兴趣的可以看一下)。根据这些条件随便找一个aes在线加解密网站测试一下。可以看到结果是一样的。



同样的解密函数也是一样,就在w的下面。函数C。搞懂所有思路的就可以上代码测试了,直接扣js代码,在node环境CryptoJS加密库或者直接使用python里面的Crypto都可以。我这直接使用python代码了。测试了一下没有什么问题,至此可以结束了,感谢观看。

image.png (71.17 KB, 下载次数: 0)

image.png

免费评分

参与人数 4威望 +1 吾爱币 +23 热心值 +4 收起 理由
binghe01 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
dy2022DY + 1 + 1 我很赞同!
sanqiuye + 1 + 1 用心讨论,共获提升!
涛之雨 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

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

推荐
 楼主| zzyzy 发表于 2025-4-14 09:26 |楼主
kuaibeyond 发表于 2025-4-13 20:21
全局搜索我知道,请问下hook的方法

那可以试试hook XMLHttpRequest,(function hookXMLHttpRequest() {
    // 备份一下原始open和send方法
    const realOpen = XMLHttpRequest.prototype.open;
    const realSend = XMLHttpRequest.prototype.send;

    // 重写open方法
    XMLHttpRequest.prototype.open = function (method, url) {
        console.log('请求地址是:', url);
        console.log('请求方法类型:', method);

        // 检查 URL 中是否包含 key
        if (url.includes('radio.key')) {
            // debugger; // 触发断点
            console.log('URL 包含 key,断点触发');
        }

        // 调用原始的open方法
        realOpen.apply(this, arguments);
    };

    // 重写send方法
    XMLHttpRequest.prototype.send = function (data) {
        // 发送请求体参数
        console.log('请求体:', data);

        // 调用原始的send方法,并传入所有参数
        realSend.apply(this, arguments);

        // 监听请求状态变化
        this.addEventListener('readystatechange', () => {
            if (this.readyState === 4) {
                // 请求完成后执行的代码
                console.log('获取返回的全部数据:', this.responseText);
            }
        });
    };
})();,在请求体做判断。
推荐
_Bitter 发表于 2025-4-14 14:22
根据大佬的思路是找到了秘钥和加密算法。不过我找的是登录里面的。但是有点看不懂b(T)怎么来的,还有麻烦大佬能分享下加解密网址吗
沙发
fanqie8 发表于 2025-4-13 06:33
学习了,不错,标准的aes,没有太变态的魔改,就还能看懂一点
3#
jeledong 发表于 2025-4-13 10:10
谢谢分享
4#
kuaibeyond 发表于 2025-4-13 13:42
请问怎么用hook定位signCode?
5#
 楼主| zzyzy 发表于 2025-4-13 14:05 |楼主
kuaibeyond 发表于 2025-4-13 13:42
请问怎么用hook定位signCode?

定位signCode,直接全局搜索就出来了
6#
kuaibeyond 发表于 2025-4-13 20:21
zzyzy 发表于 2025-4-13 14:05
定位signCode,直接全局搜索就出来了

全局搜索我知道,请问下hook的方法
7#
Lee546 发表于 2025-4-14 09:22
感谢分享,小白学习中
9#
bolin8 发表于 2025-4-14 09:30
学习到了,感谢大神分享
10#
mr1982hyx 发表于 2025-4-14 13:41
感谢大神分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-4-30 13:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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