ppdai 站点登录参数加密解析,最短的文章,最棒的案例 com
📢📢📢📢📢📢💗 你正在阅读 【梦想橡皮擦】 的博客👍 阅读完毕,可以点点小手赞一下🌻 发现错误,直接评论区中指正吧📆 橡皮擦的第 <font color=red>640</font> 篇原创博客
⛳️ Python 反爬实战场景
本篇博客的目标案例是某贷登录,也是我们爬虫逆向登录篇的最后一篇,目标站点如下所示:
使用开发者工具测试之后捕获了 2 个请求,其中存在一个预检,忽略该内容。
点击上图第二个 securityWeb
,获取请求参数,可以初步猜测加密方法。
复制关键字 pwdLoginService/securityWeb
,添加 XHR 断点,再次点击登录按钮。
结局是通过 XHR 断点,并未捕获到参数加密位置。
既然无法通过断点直接调试,那我们可以直接尝试检索 password
,查看是否可以定位到源码部分。
由于代码已经进行了格式化,所以直接获取到了加密参数逻辑
添加断点之后,多次尝试,发现登录操作无法进入断点,上翻代码之后,才注意到断点添加到了注册逻辑中。下图箭头位置可以明显看到注册英文。
但该位置也让我们发现了加密函数,即 e.$encrypt.encrypt
,后续我们只需要跟进这个函数的实现,就可以知道加密逻辑所在。
在该文件中检索上述关键字,结果登录的加密逻辑竟然在数据验证中。
其中 md5
加密没有太大的难度,那接下来就是 encrypt
的扣取了,既然是解密登录的最后一篇博客了,下面为大家详细的解释每一步调试逻辑以及扣取代码的过程。
⛳️ 实战扣代码
这里带给大家我的小技巧,JS 全文加载,然后进行删除。当我们找到对应的 JS 文件之后,直接复制到本地,创建一个 HTML 文件,例如下述内容。
在原站点中找到实例化对象的代码,即上述内容中的 new JSEncrypt()
,然后测试是否可以正常运行。当得到下述结果时,任务就基本完成了。
下面对代码进行删除,先记录一下代码行数,作为优化参考,默认 13313
行代码。
接下来找到 VUE 代码部分,直接进行删除。
删除 es6 兼容部分代码。
下面继续删除 function 内部的代码,每次删除都测试一下加密对象是否正常加载。
下图是部分 function 删除之后的效果
测试结果图
简单进行一下精简,目前剩余 不足 5000 行。
📣📣📣📣📣📣右下角有个大拇指,点赞的漂亮加倍
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/deec62706355055d070829f9f】。文章转载请联系作者。
评论