Python爬虫进阶必备 | 极X助手加密算法分析

极X助手

aHR0cHM6Ly93d3cuamlkYWlob21lLmNvbS9vZmZpY2VyLyMvbG9naW4=javascript

先抓包看看此次要分析的参数。【图1-1】java

图1-1

看到【图1-1】里是没有加密参数名的。因此为了快速定位到加密的位置,咱们试试 XHR 断点。python

切换到 控制台 -  Source 选项卡 ,如【图1-2】位置填入下面的内容。web

图1-2

接着咱们再发起一次请求,能够看到断点打上了。【图1-3】微信

图1-3

咱们点击左下角的{}格式化 JS 看看断点断上的位置有没有咱们须要的内容。【图1-4】app

图1-4

咱们能够看到这里函数 y传入一个参数tt中包含咱们须要的提交数据【图1-5】。可是在这个断点位置并不能找到参数加密的地方,因此咱们须要点击右侧的堆栈往上看看。dom

图1-5

咱们经过查看堆栈信息,找到了这里【图1-6】。发如今这里出现了 params相关的的操做,因此这里的可能包含的就是咱们须要的加密位置,咱们根据提示进去看看这里的加密逻辑是什么样的。编辑器

图1-6

能够看到这里把通过处理的密码和用户名传入后,再次作了另外一次加密处理后获得了变量i函数

var r = t.randomKey(16), i = t.aesEncrypt(JSON.stringify(e), r);
图1-7

咱们分别把变量i须要的参数分别跟进去看看生成规则。【图1-8】是变量r的生成规则是一串随机的字符串。ui

图1-8

接下来是加密变量i的加密方法【图1-9】。

图1-9

接下来只须要把这些参数的方法复制到编辑器中进一步的补全就能够了。

Tip: 这里的参数e是咱们传入的用户名和密码,在【图1-6】的 54-55 行中传入,且密码通过了一层MD5的加密。

这里不少朋友纠结于相似 i.enc.Utf8.parse 这里的i如何补全,其实这里的i 就是咱们经常使用的CryptoJS,只要引入后,直接替换就能够了,不用扣取整个JS。


本文分享自微信公众号 - 咸鱼学Python(xianyuxuepython)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索