拼多多登陆 JS 密码字段加密解析

个人博客网站

拼多多登陆 JS 密码字段加密解析

若有侵权请立即联系作者删除!!!

目标: X多多自动登录时对密码字段的加密

抓登陆包

网址 https://mms.pinduoduo.com/login

打开调试工具,随意输入一个账号密码点击登陆

原始数据

然后我我们看到一个 POST 请求

https://mms.pinduoduo.com/janus/api/auth

原始数据

可见密码是在 js 中加密好了之后进行 post 提交的 看这货最后一次加密应该是 base64 加密。

定位可疑加密处

利用 Search 与堆栈调试跟踪断点调试在3万行代码中找到可疑加密处

原始数据

查找可疑处并断点调试, 此处明显 RSA 加密三部剧特征!

  1. 实例化 new 一个对象
  2. 设置密钥
  3. 加密

原始数据

跟进方法

原始数据

分析代码

原始数据

判断可以将此 js 复写出来,摘写出加密方法,放到 HBuilder 中调试

原始数据

修改复写该部分, 并将加密的匿名函数改写,调用

头部补入

// 定义 navigator 与 window
var navigator = {};
var window = this;  // 等于当前对象

js代码尾部改写为调用模式,提供给 Python 使用

// 1. 将上面这一坨匿名函数掐头去尾留中间,将其暴露出来, 这样才能使这个匿名函数暴露出来。	
// 2. 改写 将 rt 解密对象,赋值给 JSEncrypt
JSEncrypt = rt
	
// 自己写一个 func 来调用加密, 摘抄加密处如何使用的即可
function test(text){
	var p = new JSEncrypt; // 上面刚刚得到的JSEncrpyt 正好new 一个赋值给 p
	// 经过测试 PublickKey 为固定值,摘抄即可
	p.setPublicKey("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOJ3pYE2cYqdHAnQhd0akAQ6tKiepF6ZCXnYix8HyZJapWm5aeJRmXpWPaH2l+tZzgwOELJLu0BYk6eefWpd79Zm63+cSRdRqhgSv3/Anh4XVjBBewc26KUKMq5MWnEVCyjEDZSzUvCnDiVOl+Uid9tRRr1ZrBMKsXwSgjvge0NwIDAQAB"),
	password = p.encrypt(a)  // 适当改写
	console.log(password) // 打印
};
	
test('密码')

测试js是否能加密

原始数据

利用 Python 的 js2py 模块运行 js

with open("encryp.js", "r", encoding="utf-8") as f:
    self.context.execute(f.read())

ret = self.context.test('待加密的字符串')

原始数据

GitHub 代码

自此完成了提交登陆请求时对密码的加密,用此方法可对其他字段进行自行封装。

【拼多多】登陆参数解密

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值