ppdai站点登录参数加密解析,最短的文章,最棒的案例 com Y28

举报
梦想橡皮擦 发表于 2022/04/30 21:37:58 2022/04/30
【摘要】 📢📢📢📢📢📢💗 你正在阅读 【梦想橡皮擦】 的博客 ⛳️ Python反爬实战场景本篇博客的目标案例是某贷登录,也是我们爬虫逆向登录篇的最后一篇,目标站点如下所示:# Base64 编码aHR0cHM6Ly9hY2NvdW50LnBwZGFpLmNvbS9wYy9sb2dpbg==使用开发者工具测试之后捕获了2个请求,其中存在一个预检,忽略该内容。点击上图第二个 securit...

📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客

⛳️ Python反爬实战场景

本篇博客的目标案例是某贷登录,也是我们爬虫逆向登录篇的最后一篇,目标站点如下所示:

# Base64 编码
aHR0cHM6Ly9hY2NvdW50LnBwZGFpLmNvbS9wYy9sb2dpbg==

使用开发者工具测试之后捕获了2个请求,其中存在一个预检,忽略该内容。

点击上图第二个 securityWeb,获取请求参数,可以初步猜测加密方法。

复制关键字 pwdLoginService/securityWeb,添加 XHR 断点,再次点击登录按钮。

结局是通过XHR 断点,并未捕获到参数加密位置。

既然无法通过断点直接调试,那我们可以直接尝试检索 password,查看是否可以定位到源码部分。

由于代码已经进行了格式化,所以直接获取到了加密参数逻辑

添加断点之后,多次尝试,发现登录操作无法进入断点,上翻代码之后,才注意到断点添加到了注册逻辑中。下图箭头位置可以明显看到注册英文。

但该位置也让我们发现了加密函数,即 e.$encrypt.encrypt,后续我们只需要跟进这个函数的实现,就可以知道加密逻辑所在。

在该文件中检索上述关键字,结果登录的加密逻辑竟然在数据验证中。

其中 md5 加密没有太大的难度,那接下来就是 encrypt 的扣取了,既然是解密登录的最后一篇博客了,下面为大家详细的解释每一步调试逻辑以及扣取代码的过程。

⛳️ 实战扣代码

这里带给大家我的小技巧,JS全文加载,然后进行删除。
当我们找到对应的JS文件之后,直接复制到本地,创建一个HTML文件,例如下述内容。

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="jencrypt.js"></script>
	<script>
		o = new JSEncrypt();
		console.log(o);
	</script>
</head>
<body>

</body>
</html>

在原站点中找到实例化对象的代码,即上述内容中的 new JSEncrypt(),然后测试是否可以正常运行。
当得到下述结果时,任务就基本完成了。

下面对代码进行删除,先记录一下代码行数,作为优化参考,默认 13313 行代码。

接下来找到 VUE 代码部分,直接进行删除。

删除 es6 兼容部分代码。

下面继续删除 function 内部的代码,每次删除都测试一下加密对象是否正常加载。

下图是部分 function 删除之后的效果

测试结果图

简单进行一下精简,目前剩余 不足5000行。

📣📣📣📣📣📣
右下角有个大拇指,点赞的漂亮加倍

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。