Javascript

python爬虫 - js逆向之猿人学第十六题webpack简版

本文主要是介绍python爬虫 - js逆向之猿人学第十六题webpack简版,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前言

好久没有写猿人学的分析了,今天来分析一波

 

打开网址:

 

同样的,也很轻易的拿到接口,

 

 

然后这个接口里的请求参数又是迷人的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里搞一个看行不行

 

 

 

结语

 

没有结语,主要就是定位加密逻辑的思路

这篇关于python爬虫 - js逆向之猿人学第十六题webpack简版的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!