前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JS逆向】某建筑市场监督管理平台企业数据加密逆向分析探索!

【JS逆向】某建筑市场监督管理平台企业数据加密逆向分析探索!

作者头像
二爷
发布2024-01-03 15:43:29
1690
发布2024-01-03 15:43:29
举报
文章被收录于专栏:二爷记二爷记

一个很典型的加密数据反爬网站,目的就是反爬,不让你拿到企业相关数据,有着很典型的特征,在查找数据的时候看不到任何内容数据,都是加密的内容数据。

网站网页返回数据信息内容,很典型的加密数据内容:

网址:

代码语言:javascript
复制
aHR0cHM6Ly9qenNjLm1vaHVyZC5nb3YuY24vZGF0YS9jb21wYW55
  1. 分析网页接口数据信息

2.通过翻页获取到数据接口地址及发包信息

3.搜索关键字查找关键内容信息

这一步很关键,都有哪些关键字可供搜索查询呢?

这里统计一下:

可以尝试直接搜索 CryptoJS,decrypt 等关键字,或者搜索加密算法中经常用到的偏移量 iv、模式 mode、填充方式 padding 等,还有一般的 JSON 数据可以搜索 JSON.parse 等。

4.结合网站返回数据,可以考虑搜索 JSON 数据,可以搜索 JSON.parse 关键字,大部分网站数据都是返回 JSON 数据。

5.有三个关联js文件信息

6.点开第一个关键js文件,再次搜索关键字,找到可疑代码

7.文件打开到面板中,打上断点

8.刷新调试数据,可以看到e变量很符合网页返回数据

9.进入b函数查看

10.可以看到很典型的加密算法,打上断点试试看

代码语言:javascript
复制
function b(t) {
            var e = d.a.enc.Hex.parse(t)
              , n = d.a.enc.Base64.stringify(e)
              , a = d.a.AES.decrypt(n, f, {
                iv: m,
                mode: d.a.mode.CBC,
                padding: d.a.pad.Pkcs7
            })
              , r = a.toString(d.a.enc.Utf8);
            return r.toString()
        }

11.刷新调试,可以看到数据已经出来了

12.打印输出,验证数据内容

重写js代码

代码语言:javascript
复制
// 引用 crypto-js 加密模块
var CryptoJS = require('crypto-js')
// const CryptoJS = require('crypto-js');

function getDecryptedData(t) {
    var m = CryptoJS.enc.Utf8.parse("0123456789ABCDEF"),
        // f = CryptoJS.enc.Utf8.parse("Dt8j9wGw%6HbxfFn");
        f = CryptoJS.enc.Utf8.parse("jo8j9wGw%6HbxfFn"),
        e = CryptoJS.enc.Hex.parse(t),
        n = CryptoJS.enc.Base64.stringify(e),
        a = CryptoJS.AES.decrypt(n, f, {
            iv: m,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
    }),
        r = a.toString(CryptoJS.enc.Utf8);
    return r.toString()
}


// 测试样例
// var t = '5588a9e126c91a28cc2f6813e3793369c25469a35a79a5541917e'
// console.log(getDecryptedData(t))

附踩的坑

两个秘钥,后面代码里还有一个!

代码语言:javascript
复制
// f = CryptoJS.enc.Utf8.parse("Dt8j9wGw%6HbxfFn");
f = CryptoJS.enc.Utf8.parse("jo8j9wGw%6HbxfFn");

秘钥用错或者加密的数据用错,报错信息:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python与SEO学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 附踩的坑
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档