友情提示:在博客园更新比较慢,有兴趣的关注知识图谱与大数据公众号吧。这次选择苏宁易购登录密码加密,如能调试出来代表你具备了一定的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)

结果:

结束

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

这个爬虫JS逆向加密任务,你还不来试试?逆向入门级,适合一定爬虫基础的人的更多相关文章

  1. python爬虫---js加密和混淆,scrapy框架的使用.

    python爬虫---js加密和混淆,scrapy框架的使用. 一丶js加密和js混淆 js加密 ​ 对js源码进行加密,从而保护js代码不被黑客窃取.(一般加密和解密的方法都在前端) http:// ...

  2. 37.前台js登陆加密分析

    开篇 由于现在的登陆接口如果明文传输的话,容易被暴力破解,越来越多的网站选择了前台js加密的方式,像这样: 或者这样: 枯了,对渗透造成一定的影响 本篇文章将系统的讲述使用Python对前台js加密爆 ...

  3. PHP, Python, Node.js 哪个比较适合写爬虫?

    PHP, Python, Node.js 哪个比较适合写爬虫? 1.对页面的解析能力2.对数据库的操作能力(mysql)3.爬取效率4.代码量推荐语言时说明所需类库或者框架,谢谢.比如:python+ ...

  4. 1秒破解 js packer 加密

    原文:1秒破解 js packer 加密 其实有点标题党了,不过大概就是这个意思. 进入正题, eval(function(p,a,c,k,e,d){e=function(c){return(c< ...

  5. 前端使用crypto.js进行加密

    前端使用crypto.js进行加密 https://www.cnblogs.com/lz2017/p/8046816.html   最近我在前端使用Cookies保存密码的时候需要前端来进行加密工作, ...

  6. js混淆加密,通过混淆Js代码让别人(很难)无法还原

    js混淆加密,通过混淆Js代码让别人(很难)无法还原   使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对应一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密 ...

  7. 笔记-爬虫-js代码解析

    笔记-爬虫-js代码解析 1.      js代码解析 1.1.    前言 在爬取网站时经常会有js生成关键信息,而且js代码是混淆过的. 以瓜子二手车为例,直接请求https://www.guaz ...

  8. js base64加密,后台解密

    这是为了解决页面发送post请求,传输密码,在页面的控制台可以看到密码的明文,所以先用base64把要传输的密码转换为非明文,然后在后台解密处理. base64encode.js // base64加 ...

  9. js前台加密,java后台解密实现

    参考资料: JS前台加密,java后台解密实现

  10. DES加密解密 与 Cookie的封装(C#与js互相加密解密)

    2D JS框架 - DES加密解密 与 Cookie的封装(C#与js互相加密解密)   这次实现了JS端的DES加密与解密,并且C#端也能正确解析DES的密文(反之也实现了) 使用的代码如下,非常方 ...

随机推荐

  1. PHP curl_share_init函数

    (PHP 5 >= 5.5.0) curl_share_init — 初始化一个 cURL 共享句柄 说明 resource curl_share_init ( void ) 允许两个 cURL ...

  2. 7.18 NOI模拟赛 树论 线段树 树链剖分 树的直径的中心 SG函数 换根

    LINK:树论 不愧是我认识的出题人 出的题就是牛掰 == 他好像不认识我 考试的时候 只会写42 还有两个subtask写挂了 拿了37 确实两个subtask合起来只有5分的好成绩 父亲能转移到自 ...

  3. MyBatis-Plus使用(1)-概述+代码生成器

    MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 官网:https://mp.baomidou.com ...

  4. 部署Python应用

    目录 安装Python 3.7.5 部署文件 安装Python 3.7.5 CentOS默认安装的是2.7.5版本的python [root@iZuf6e3zah39uzoj5pg1myZ ~]# p ...

  5. 一文打尽Java继承的相关问题

    相关文章: <面向对象再探究>:介绍了面向对象的基本概念 <详解Java的对象创建>:介绍了对象的创建.构造器的使用 在<面向对象再探究>这篇文章中已经笼统的介绍过 ...

  6. 29-main()的使用说明

    * 1. main()方法作为程序的入口 * 2. main()方法也是一个普通的静态方法 * 3. main()方法可以作为我们与控制台交互的方式.(使用Scanner) 如何将控制台获取的数据传给 ...

  7. Linux入门-程序开发

    Linux程序开发 linux程序总体上来说是分两部分的: 1. 底层驱动程序开发: 2.应用层应用程序开发: 驱动程序 一般情况下驱动是跟内核与硬件有关系的,编程语言是C语言,需要懂一些硬件的知识, ...

  8. c++中包含string成员的结构体拷贝导致的double free问题

    最近调试代码遇到一个的问题,提示double free,但是找了好久也没有找到释放两次的地方,后来调试发现,是由于使用了一个包含string成员的结构体,这个结构体使用memcpy拷贝导致的问题: 代 ...

  9. 027_go语言中的通道选择器

    代码演示 package main import "fmt" import "time" func main() { c1 := make(chan strin ...

  10. Typora 完美结合 PicGo,写作体验更佳!

    写在前面 在众多 md 编辑器中,Typora 是大家公认的体验较好的写作软件之一,它最大的特点就是:所见即所得,无须分屏预览,或者开启新页面预览.除此之外,还有很多优点,这里不做介绍,不是本文的重点 ...