13

这里有个爬虫JS逆向任务,你还不来试试?入门级的哦

 3 years ago
source link: http://www.happyhong.cn/ni-xiang/pa-chong/10026.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
这里有个爬虫JS逆向任务,你还不来试试?入门级的哦 | 从今天开始种树

这次选择苏宁易购登录密码加密,如能调试出来代表你具备了一定的JS逆向能力,初学者建议跟着内容调试一波,尽量独自将JS代码抠出来,实在抠不出来参考这里从今天开始种树

最近都在研究一些网站的登录密码加密JS代码,都比较简单,非常适合有一定爬虫基础准备进阶的童靴,只有这些做好了下一步才能开始着手滑块验证码这个大坑,废话不多说,直接开整。

打开苏宁易购登录网址点这里:

在这里插入图片描述
在这里插入图片描述
是不是一阵熟悉的赶脚。老规矩,输入错误的账号密码点击登录,看看提交链接:
在这里插入图片描述
在这里插入图片描述
可以看出登录账号密码被提交到了https://passport.suning.com/ids/login,看看FormData数据:
在这里插入图片描述
在这里插入图片描述
本篇文章只获取password2的加密方法,其它的参数暂时不管。

调试的前提是先找到关键字在哪个位置,这里提供了两种寻找方法:

方法一:调用栈方式

即在调用栈中点击JS文件链接进去,可以通过函数名大概做一个判断再点击,如下图其实就选择了位置可能比较正确的函数loginSubmit

在这里插入图片描述
在这里插入图片描述
点击进去后其实就靠经验判断一下,我往下拉了一小点就发现带有encrypt、pwd2的函数出现,那基本就断定这就是要找的加密方法:
在这里插入图片描述
在这里插入图片描述

方法二:直接搜索方式

这是我们常用的方法,先搜到包含关键字的文件,再从文件中搜到关键字的位置,这次比较幸运,只有一个文件包含password2,并且这个文件里只有一个password2,找到的代码其实与上面方法找到的一样:

在这里插入图片描述
在这里插入图片描述
至于使用哪种方式全凭个人习惯,没有好坏之分。

调试开始前得先上个断点,我是再1484位置下的,下好断点就要激活断点即输入账号密码,如下所示:

在这里插入图片描述
在这里插入图片描述
一步一步运行看看,首先进入了这里,看起来像设置公钥前的准备:
在这里插入图片描述
在这里插入图片描述
点击这个按钮直接进入设置公钥函数。即encrypt.setPublicKey(loginPBK)
在这里插入图片描述
在这里插入图片描述
产生公钥,需要提的是这个公钥是固定的,一会直接复制给loginPBK
在这里插入图片描述
在这里插入图片描述
继续运行:
在这里插入图片描述
在这里插入图片描述
又有了一个encrypt函数:
在这里插入图片描述
在这里插入图片描述
原来是一个叫al的函数赋给它的。这个函数返回的结果就是加密后的密码。那该怎么扣这个代码呢,有一个关键点就是var encrypt = new JSEncrypt();,去这个文件里搜一搜JSEncrypt
在这里插入图片描述
在这里插入图片描述
等于 JSEncryptExports.JSEncrypt;,那一直复制到前面JSEncryptExports开始的地方一个可以了。

python调用

又来到了python调用的环节,老代码又来了:

import execjs

with open('..//js//suningyigou.js', encoding='utf-8') as f:
    suningyigou= f.read()
js = execjs.compile(suningyigou)
logid = js.call('get_pwd', "123456")
print(logid)
Python

结果:

在这里插入图片描述
在这里插入图片描述

到这里今天的苏宁易购密码加密扣JS的环节就结束了,强烈建议您练上一遍,有哪里不懂的可以在评论区留言。关注下面的公众号,获取更多内容,当然不关注也无所谓。完整代码请访问从今天开始种树

在这里插入图片描述
在这里插入图片描述

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK