所在的位置: js >> js介绍 >> 记一次nft接口签名绕过

记一次nft接口签名绕过

闲来无事看到某个nft接口为了防止接口被重复调用做了签名校验,抱着学习的心态破解一下

f12查看请求头参数,发现每次接口携带不同sign参数,由前端加密生成,下面开始破解sign。

定位sign生成的地方,全局搜索sign

可以看出u.default.md5(d+e+r+a+"1.0")就是生成sign的方法了,接下来断点查看每个参数如何生成的,然后执行加密函数就可以获取到sign

断点后可以看到d是固定值,e是从某个接口返回的最终存在本地,r为时间戳newDate().getTime()/取整获得,1e3其实就是10的三次方,a的值由s函数获得,所以接下来就要获取e跟a了

2.获取a

在s函数处打断点,进入对应js文件

复制这个加密函数在控制台执行一下,发现可以直接执行,执行结果就是上面参数a的值,本地建一个js文件,把这个加密函数放进去

3.获取e

之前断点看到如果本地没有存储secret就调用g函数获取,所以首先删除本地存储的secret,在g函数处打个断点,再进入到对应js

可以看到没有额外的请求头参数,get请求,直接丢到地址栏获取

到现在已经可以获取到全部的参数了,接下来找到加密函数,复制到本地调用就行了3.找加密函数之前断点看到sign由u.default.md5(d+e+r+a+"1.0")生成,在这行断点,进入加密函数,图中外面包裹的就是它的加密函数了,整个复制下来放本地

因为我们是直接调用就把t.exports改成return就行

最后看下本地写入的js文件

4.postman测试

大功告成!

(本教程仅供学习,切勿用于非法用途)

预览时标签不可点收录于合集#个上一篇下一篇

转载请注明:http://www.aierlanlan.com/rzfs/739.html