声明此文章仅适合学习
此网站是返回参数加密网站
-
先给大家贴个链接
aHR0cHM6Ly93d3cuaGF{“可不可删掉我”}uZ2hhbmdjaGEuY29tL2{“我觉得可以”}FnZW5jeS10aW1pbmc= -
拿到链接正常操作先去看看网络请求
这里是发XHR请求的,所以可以根据链接给上XHR断点也可以直接看堆栈。这次的是返回参数加密 -
这里第二种方式来找入口参数
直接进去看看有没有收获?看起来这两个地方特像把数据进行解密在转成json,话不说给上断点刷新页面
刷新之后发现e是加密参数,经过c[“a”].decrypt(e)得到是真实数据那应该c[“a”].decrypt(e)这个就是解密的地方了。
-
单步进入调试,这里是AES加密那好办,相当于只要知道模值(mode)、密钥(key)、填充模式(padding)三要素。
这里需要的a、o、s值,看一下上面有直接复制过来
var CryptoJS = require('crypto-js')
var o = "3sd&d2"
var a = "4h@$udD2s"
var s = "*";
function decrypt(n, e) {
e = e || "".concat(o).concat(a).concat(s);
var t = CryptoJS.enc.Utf8.parse(e)
, i = CryptoJS.AES.decrypt(n, t, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return CryptoJS.enc.Utf8.stringify(i).toString()
}
// data就是请求回来的参数
n = data
e = undefined
console.log(decrypt(n,e))
- 请求接口参数拿到返回data调用JavaScript即可返回真实数据。