案例地址:spiderbuf第C9题
找加密接口和参数
接口如下:

py验证一下有哪些参数需要逆向:

这里看不出来,可能是参数时效性太短或者是参数只能用一次,那我们只能根据是否是密文+是否变化+经验来大致判断,这里s肯定是需要逆向的,cookies中的token可能需要,先不管,等s逆向出来后依旧得不到数据再一个个加即可
定位加密参数位置
启动器进去就发现了这个:

打断点看看怎么个事儿:



ok,也就是说,tt为十位时间戳,s是hbase64得到的,h是上面hmacsha256得到的,里面有一个fp参数需要分析,其他参数一个是时间戳加一个函数生成的t以及生成的t本身,t在这里生成(先不管等会儿缺啥补啥吧):

我们看一下fp生成的函数里面:


它是由一个base64图片加navigator.userAgent后经过sha256加密生成的,差不多找齐了,下面开始复现
复现加密逻辑
先将这几行代码拿下来,并将库补上:


缺fp,我们拿下来:

缺少解密函数,我们直接拿三件套吧:


看来缺一些环境,补一下:

补了一些环境,但是到这里卡壳了,去网站看的时候感觉这些代码都没有用,所以直接删掉:


图片也写死,然后运行:

再扣tt,扣完运行:

再扣t:


这就出值了,下面封装一下看看能否拿到数据:

拿不到,大概率是需要携带cookie,看看_token_c09是怎么来的,先清除cookie刷新后搜索看看是不是接口返回的:

就是其他接口返回的,那就请求接口拿下来:

带上再请求:

哈哈哈哈哈,没拿到,那是哪儿的问题呢,我们来看看环境:

而且这里t的生成也与cookie有关系:


懂否,所以我们还需要补上cookie这个环境:

然后...

依旧拿不到,找了半天其实还是环境问题,但是没吐出来,因为node中本来也就有:

这个是navigator的userAgent,它没有赋值的话就是node,所以我们需要手动替换掉:

再运行:

啥意思?何意味?经过不断尝试发现:

因为我们加密的时候用到了,请看:

加密的时候用到肯定后台要校验的,所以需要带,在运行看看:

拿下!
小结
本文也不算难,但是比较恶心,需要注意很多细节,如文章有任何问题请及时提出,加油加油