极X助手
aHR0cHM6Ly93d3cuamlkYWlob21lLmNvbS9vZmZpY2VyLyMvbG9naW4=javascript
先抓包看看此次要分析的参数。【图1-1】java

看到【图1-1】里是没有加密参数名的。因此为了快速定位到加密的位置,咱们试试 XHR 断点。python
切换到 控制台 - Source 选项卡 ,如【图1-2】位置填入下面的内容。web

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

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

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

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

能够看到这里把通过处理的密码和用户名传入后,再次作了另外一次加密处理后获得了变量i
。函数
var r = t.randomKey(16), i = t.aesEncrypt(JSON.stringify(e), r);

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

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

接下来只须要把这些参数的方法复制到编辑器中进一步的补全就能够了。
Tip: 这里的参数e
是咱们传入的用户名和密码,在【图1-6】的 54-55 行中传入,且密码通过了一层MD5的加密。
这里不少朋友纠结于相似 i.enc.Utf8.parse
这里的i
如何补全,其实这里的i
就是咱们经常使用的CryptoJS
,只要引入后,直接替换就能够了,不用扣取整个JS。

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