这个爬虫JS逆向加密任务,你还不来试试?逆向入门级,适合一定爬虫基础的人
2020-08-27 21:00
1571 查看
友情提示:在博客园更新比较慢,有兴趣的关注知识图谱与大数据公众号吧。这次选择苏宁易购登录密码加密,如能调试出来代表你具备了一定的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;,那一直复制到前面J
SEncryptExports开始的地方一个可以了。
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)
结果:
结束
到这里今天的苏宁易购密码加密扣JS的环节就结束了,强烈建议您练上一遍,有哪里不懂的可以在评论区留言。关注下面的公众号,获取更多内容,当然不关注也无所谓。完整代码请访问从今天开始种树。
相关文章推荐
- JS逆向 | JSF*ck,这个看着头大的加密其实很简单
- Python爬虫神器pyppeteer,对 js 加密降维打击
- 揭秘FaceBook Puma演变及发展——FaceBook公司的实时数据分析平台是建立在Hadoop 和Hive的基础之上,这个根能立稳吗?hive又是sql的Map reduce任务拆分,底层还是依赖hbase和hdfs存储
- java爬虫,破解JS加密的Cookie
- 对于有一定编程基础的学生来说,看下面这个链接的文章比较好
- 第十四篇:机器学习实战:网络数据爬虫篇:豆瓣海报爬虫任务(json格式数据的抓取):任务分解、爬虫基础知识了解、谷歌开发者工具、代码实战
- 大数据零基础学习全套教程(同样适合有一定基础想进阶的)
- python爬虫之js逆向(一)
- 爬虫(js加密)-关于有道翻译的js加密简单破解
- 百度翻译爬虫js逆向解析
- 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网
- 爬虫基础 --selenium库(解决JS渲染问题)
- Python学习 第一天任务 (三:Python不止基础学习 继续安装爬虫环境的配置)
- 萌新PHP开发之旅(适合学艺术的前端开发观看,基础一定是负数才行)
- 一.爬虫--破解网站通过js加密生成cookie(一)
- 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网
- python爬虫js逆向学习(二)
- android逆向之NDK基础(QQ客户端数据库加密so分析)
- python爬虫js逆向学习(三)