欢迎光临
我们一直在努力

新人报道:澎湃新闻js逆向

提前说明下,这个是我在简书上写的笔记,并不是抄袭哈

目标url:https://www.thepaper.cn/

进入首页后,根据搜索按钮进行搜索,url为:https://www.thepaper.cn/searchResult.jsp
这是一个POST请求,参数为:

inpsearch: 要搜索的内容
codeData: LsF0e2W1esW8kI0H
seeda: gzA1%2BNaOjkJv1TEQV8BlnrOqr2Zg9vWXwjsZTtzbeyA%3D
suuid: e20225ee-f703-43a9-a8b1-c399b3c05712
sckval: 48da52276a132e1f1811b2838ab8b913

上述参数中,codeData和suuid可以直接获取,url为:https://www.thepaper.cn/getCheckCodeData.jsp
发送post请求就可以拿到(见下图)

接下来就是seeda和sckval的获取

利用浏览器调试工具搜索功能,直接搜索seeda,可以看到是在login.js里面生成的。
然后我们会发现,seeda和sckval都是在里面生成的,这里还是比较简单的

打上断点,然后我们发现,codeData和suuid就是我们之前获取的,o.seeda和n的值就是seeda和sckval。

ok,接下来我们看下参数是否是一致的

经比对,发现确实是seeda和sckval的生成逻辑

看生成逻辑可以得出:sckval是对codeData和uuid的组合进行CryptoJS.MD5处理得到的,
seeda是encodeURIComponent 处理s得到的,而s是对codeData进行
CryptoJS.AES.encrypt加密生成的。
幸运的是CryptoJS是node.js的一个包,encodeURIComponent是js自带的方法,都可以直接找到。

分析出方法之后,怎么使用python执行呢

我试过使用AES包去解决,AES.new(key,model,iv) 当model为ECB模式的时候会报错,
就很懵逼,干脆就直接使用pycharm安装node.js环境算了。
安装的过程就不赘述了,大家自行查询就可以啦

安装完了node.js环境之后,就可以在pycharm的Terminal中执行命令,安装这个包了

npm install crypto-js  

接下来是改装的js代码

const CryptoJS = require("crypto-js"); //引入crypto-js
function bs(codeData,suuid) {
    var t = {};
    var e = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex)
      , i = CryptoJS.enc.Utf8.parse(codeData);
    md = CryptoJS.mode.ECB;
    var s = CryptoJS.AES.encrypt(codeData, i, {
        iv: CryptoJS.enc.Hex.parse(e),
        mode: md,
        padding: CryptoJS.pad.Pkcs7
    });
    seeda = encodeURIComponent(s);

    var n = CryptoJS.MD5(codeData + suuid).toString();
    return [n,seeda]  // 返回列表中n就是sckval,seeda就是seeda
}

然后使用python来执行这段代码:

import execjs
# execjs是python执行js的一个包,使用pip install pyexecjs即可安装
with open('1.js','r',encoding='utf-8') as r:
    js = r.read()
jsdm = execjs.compile(js)  
result = jsdm.call('bs','AKaqtzq2BMBN3ywv','c6163de3-5af1-492f-bd49-80de9cd65628')
print("seeda:{}".format(result[1]))
print("sckval:{}".format(result[0]))

测试结果:

经对比,结果一致。请求列表页需要把response-cookie更新进cookie中即可。

赞(0) 打赏
未经允许不得转载:哈哈网 » 新人报道:澎湃新闻js逆向

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏