好久没有写猿人学的分析了,今天来分析一波
打开网址:
同样的,也很轻易的拿到接口,
然后这个接口里的请求参数又是迷人的m,m就是我们的目标了
老规矩,搜索:
搜一堆出来,感觉都不太靠谱
那咋办?先看特征,看这个长度是多少的,卧槽,这个长度有点少见了
点调用栈看看:
看到这个就很可疑了
为啥这么说,dispatch分发请求,匿名函数操作,实际的request,所以,关键的逻辑一定在这个request或者匿名函数anonymous前后,再看js名字就叫webpack,那就是webpack打包的,那前面才分析过webpack的东西,不用怕,点进去看:
进来都到这里,打上断点,翻页看看,这不就找到了吗,看着webpack唬人,感觉没两样啊
然后看逻辑,m的值就是n[e(528)](btoa, p_s)生成的了,然后传入的参数btoa,这个可以直接调用,不用多说,再看后面的p_s,定义就在上面,那就只剩n[e(528)]这个不知道啥东西了,鼠标放上去,发现,这个就是前面说的匿名函数anonymous了
点过去,发现就在上面,然后看逻辑,第一个参数是个函数,然后把第二个参数传入函数直接返回,这个不就是python里的装饰器嘛,
那么,也就是说,实际的加密逻辑就是btoa(p_s)
控制台操作下:
这不就出来了吗
然后,前面js逆向安全专题里说了,btoa就是个base64的函数,直接忽略了,python里直接就有,主要是后面的这个参数:
p_s = Date[e(496)](new Date)[e(517)]()
时间相关的都好说,就差这个e(517)和e(496)了,控制台看是啥东西:
最后的结果:
然后这个时间戳的话,是毫秒级别的,13位
那行,直接在python里搞一个看行不行
没有结语,主要就是定位加密逻辑的思路