建筑市场监管平台解密

本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

目标地址:aHR0cDovL2p6c2MubW9odXJkLmdvdi5jbi9kYXRhL2NvbXBhbnk=

直接抓包,所有返回结果都是加密的
返回结果加密.png

这种怎么定位到解密位置

  1. 搜关键字,例如decrypt之类
  2. 找到ajax回调函数,一步步调试到解析数据、更新DOM

这里直接尝试搜encrypt,很好,只有一个结果
AES加密.png

很明白了,AES加密,这个d.a看样子应该就是CryptoJS对象了,把代码扣出来拿到node里跑一下,连错都不报一个,没意思。

const CryptoJS = require("crypto-js")
const f = CryptoJS.enc.Utf8.parse("jo8j9wGw%6HbxfFn");
const m = CryptoJS.enc.Utf8.parse("0123456789ABCDEF");

function decrypt(t) {
    var 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()
}

// console.log(JSON.parse(decrypt(s)).data.list)
module.exports = decrypt

另外index接口对应的数据就是各地区的行政区划代码等信息,拿到这个就可以愉快地查询我们想要的了。
index接口.png

github

Q.E.D.


一切很好,不缺烦恼。