案例地址spiderbuf第C8题找加密接口和加密参数加密接口加密参数响应解密定位加密位置启动器进去打断点然后刷新网页注意看url是否是我们要的然后看fetch里传的啥参数第一个是十位时间戳第二个和第三个需要我们找一下ok稍微分析一下就能知道salt是在网站的时间变成时间戳然后再转base64signature是hmacsha256加密网址后再用base64编码形成下面开始编写加密代码加密复现将此几行全扣下来然后手动还原一下混淆封装后如下constCryptoJSrequire(crypto-js);functionencryptParams(){varCryptoJSrequire(crypto-js);consttimestampMath[floor](newDate()/1000),saltbtoa(performance[now]()[toString]()),hashCryptoJS[HmacSHA256](salttimestamp,https://www.spiderbuf.cn/web-scraping-practice/scraper-practice-c08);letsignatureCryptoJS[enc][Base64][stringify](hash)return{sig:signature,s:salt,t:timestamp,}}请求看看能否拿到数据拿到啦下面解决解密定位解密位置打开脚本断点刷新网页然后打开hook脚本回到上一个栈看看怎么个事儿这里太简单了就是对称加密稍微分析一下iv和key即可代码复现functiondecryptData(data,signature){const_0x206070CryptoJS[enc][Base64][parse](data)_0x46ca84CryptoJS[lib][WordArray][create](_0x206070[words],_0x206070[sigBytes])_0x20bc30{}_0x20bc30[ciphertext]CryptoJS[lib][WordArray][create](_0x46ca84[words][slice](4),1392)_0x2bd26dCryptoJS[enc][Utf8][parse](signature[slice](0,16));const_0x167729CryptoJS[AES][decrypt](_0x20bc30,_0x2bd26d,{iv:CryptoJS[lib][WordArray][create](_0x46ca84[words][slice](0,4),16),mode:CryptoJS[mode][CBC],padding:CryptoJS[pad][Pkcs7]})return_0x167729[toString](CryptoJS[enc][Utf8])}py调用result解密成功小结本文比之前的练习简单得多如有问题请及时提出加油加油
040-spiderbuf第C8题
案例地址spiderbuf第C8题找加密接口和加密参数加密接口加密参数响应解密定位加密位置启动器进去打断点然后刷新网页注意看url是否是我们要的然后看fetch里传的啥参数第一个是十位时间戳第二个和第三个需要我们找一下ok稍微分析一下就能知道salt是在网站的时间变成时间戳然后再转base64signature是hmacsha256加密网址后再用base64编码形成下面开始编写加密代码加密复现将此几行全扣下来然后手动还原一下混淆封装后如下constCryptoJSrequire(crypto-js);functionencryptParams(){varCryptoJSrequire(crypto-js);consttimestampMath[floor](newDate()/1000),saltbtoa(performance[now]()[toString]()),hashCryptoJS[HmacSHA256](salttimestamp,https://www.spiderbuf.cn/web-scraping-practice/scraper-practice-c08);letsignatureCryptoJS[enc][Base64][stringify](hash)return{sig:signature,s:salt,t:timestamp,}}请求看看能否拿到数据拿到啦下面解决解密定位解密位置打开脚本断点刷新网页然后打开hook脚本回到上一个栈看看怎么个事儿这里太简单了就是对称加密稍微分析一下iv和key即可代码复现functiondecryptData(data,signature){const_0x206070CryptoJS[enc][Base64][parse](data)_0x46ca84CryptoJS[lib][WordArray][create](_0x206070[words],_0x206070[sigBytes])_0x20bc30{}_0x20bc30[ciphertext]CryptoJS[lib][WordArray][create](_0x46ca84[words][slice](4),1392)_0x2bd26dCryptoJS[enc][Utf8][parse](signature[slice](0,16));const_0x167729CryptoJS[AES][decrypt](_0x20bc30,_0x2bd26d,{iv:CryptoJS[lib][WordArray][create](_0x46ca84[words][slice](0,4),16),mode:CryptoJS[mode][CBC],padding:CryptoJS[pad][Pkcs7]})return_0x167729[toString](CryptoJS[enc][Utf8])}py调用result解密成功小结本文比之前的练习简单得多如有问题请及时提出加油加油