链接
https://jzsc.mohurd.gov.cn/data/company
刷新网页,list接口返回值是加密数据:
搜索 JSON.parse 来确认 js 文件:
文件好像太多了呀,还得加点料,提取精华才行。搜索请求路径:
总算看到app.xxx.js了,就是它。
js文件内搜索 JSON.parse,打上断点,切换标签按钮,触发 js 执行到断点,看到接收到了加密数据:
那就定位进入 m 函数:
定位 m 函数:
改造后:
const CryptoJS = require('crypto-js');
f = CryptoJS.enc.Utf8.parse("jo8j9wGw%6HbxfFn")
h = CryptoJS.enc.Utf8.parse("0123456789ABCDEF");
function m(t) {
var e = CryptoJS.enc.Hex.parse(t)
, n = CryptoJS.enc.Base64.stringify(e)
, a = CryptoJS.AES.decrypt(n, f, {
iv: h,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
, r = a.toString(CryptoJS.enc.Utf8);
return r.toString()
}
data = "95780ba0943730051dccb5fe3918f9feae9abf241f28ec50003716c9927ce836e75cf0843f74ca2eebe0fd3276462bb9059717d20e9d7718eecf4adfdd7243f8a8e6860c3aca71962e58f8c0fc4781d00995bb85377b2ac55f0476589f73126f0b80a837491dc8f26848b35e0e636577cfab2a11ab4f172a27a7e1e3a53afe6ed8551fdb3f22ceec69bc8829523fa08b351e5c353ba45435c8bb95da93a13ed0213fc1620411bd7d6c9285248a79b05c38f4d7f92616417accada5ac1f1b83f4d58b0b1e70a4c7dea35fc5a2bebf6334cadf70ede90a3a15c3b84a932a3ad130a41b3311804f7142f68428f7e6c64204"
console.log(m(data))
拿到明文: