首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ctbpsp响应数据DES案例

ctbpsp响应数据DES案例

作者头像
李玺
发布2022-05-25 11:15:58
发布2022-05-25 11:15:58
1.6K00
代码可运行
举报
文章被收录于专栏:爬虫逆向案例爬虫逆向案例
运行总次数:0
代码可运行

案例地址:ctbpsp.com 案例内容:对ctbpsp网响应数据的DES解密案例。

抓包可以看到Response,一段类似Base64编码后的字符串。

定位很简单,全局搜索关键词decrypt。

通过下图可以看出:

  • DES算法
  • e 是 Hexkey,由字符串处理后所得
  • mode是ECB
  • padding是PKCS7
  • ciphertext是原字符串

先看e,e = w.a.enc.Utf8.parse()

然后是一个w.a.enc.Base64.parse,等同于解码: base64.b64decode(string)

因为网站使用的Cryptojs,接下来我们也用nodejs实现一下这段代码。

JS模拟

代码语言:javascript
代码运行次数:0
运行
复制
// npm install crypto-js
var CryptoJS = require("crypto-js");
var C = CryptoJS;
var C_lib = C.lib;
var WordArray = C_lib.WordArray;


function parse1(latin1Str) {
    // Shortcut
    var latin1StrLength = latin1Str.length;
    // Convert
    var words = [];
    for (var i = 0; i < latin1StrLength; i++) {
        words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);
    }
    return new WordArray.init(words, latin1StrLength);
}


var t = '要解密的字符串'
var keyHex = parse1(unescape(encodeURIComponent("ctpstp@custominfo!@#qweASD")))
var ciphertext = CryptoJS.enc.Base64.parse(t)

const decryptDES = (ciphertext) => {
  if (ciphertext) {
      let decrypted = CryptoJS.DES.decrypt(ciphertext, keyHex, {
      mode: CryptoJS.mode.ECB,
      padding: CryptoJS.pad.Pkcs7
    });
    return decrypted.toString(CryptoJS.enc.Utf8);
  } else {
    return '';
  }
};

console.log(decryptDES(t))

本地构建后即可执行成功。

大家自己动手测试下, 另外推一个爬虫逆向工具站 , cnlans.com/lx/tools

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

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