甜腻的嘴角|一个反爬 JS 逆向分析的例子

挺久没发爬虫相关的教程啦 , 今天给大伙分享一下关于网站反爬对请求参数值的加密分析例子 , 主要还是看看思路 。
定位加密点
在某网站中进行登录请求:
甜腻的嘴角|一个反爬 JS 逆向分析的例子
简单抓下包 , 点击登录按钮之后 , 可以在浏览器的控制台中看到相关的请求:
甜腻的嘴角|一个反爬 JS 逆向分析的例子
甜腻的嘴角|一个反爬 JS 逆向分析的例子
接着往下拉 , 可以看到 POST 请求的参数信息:
甜腻的嘴角|一个反爬 JS 逆向分析的例子
从中可以看出 , 除了 username 中的值比较明显之外 , 其它的参数值看的都是一脸懵逼...
其中比较关键的几个参数是:
1、pwdencrypt
2、oauth_token
3、vv
那么这时候是不是应该立刻去代码中搜索上面这几个字段呢?
不不不 , 这会增加我们的工作量 , 因为这些参数值有时候是加密的结果 , 也有时候是页面返回的值 。 如果你一开始就去全局搜索字段 ,分析到最后发现是取网页的某个值 , 那岂不是浪费许多时间?
为了避免这种事情发生 , 我们可以直接拿刚刚 POST 请求中已经被加密的参数值搜一下 , 使用快捷键 CTRL + SHIFT + F 全局搜索 JS :
搜搜 vv 字段
甜腻的嘴角|一个反爬 JS 逆向分析的例子搜搜 oauth_token 字段
甜腻的嘴角|一个反爬 JS 逆向分析的例子搜搜 pwdencrypt 字段
甜腻的嘴角|一个反爬 JS 逆向分析的例子
从搜索结果中可以发现 ,oauth_token 和 vv 为网页返回的值 , 而 pwdencrypt 全局搜索不到 , 大概率是加密的密文了 , 这样一下子就干掉了两个参数啦 , 接下来只需要分析 pwdencrypt 即可 。
全局搜索一下 pwdencrypt 字段:
甜腻的嘴角|一个反爬 JS 逆向分析的例子
可以看到 , 这里 pwdencrypt 出现在 Login.auth_v2.js 中 , 我们点进去看看:
甜腻的嘴角|一个反爬 JS 逆向分析的例子
可以看到:
pwdencrypt 在此使用了 RSAUtils.encryptedString 进行加密 。
当然 , 你也可以在这里打个断点 , 然后重新点击登录按钮 , 来确定参数的加密位置:
甜腻的嘴角|一个反爬 JS 逆向分析的例子扣取加密代码函数
先把鼠标悬浮在函数名称那 , 然后会弹出一个窗口来 , 你点一下就可以进入相关的函数了:


推荐阅读