友情提示:在博客园更新比较慢,有兴趣的关注知识图谱与大数据公众号吧。这次选择苏宁易购登录密码加密,如能调试出来代表你具备了一定的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. luogu P4321 随机漫游 期望dp 二进制 高斯消元

    LINK:随机漫游 非常妙的一道题. 容易想到倒推期望. 设状态 f[i][j]表示到达第i个点 此时已经到达的集合为j能走到全集的期望边数. 只要求出来这个就能O(1)回答询问. \(f[i][j] ...

  2. bzoj 2225 [Spoj 2371]Another Longest Increasing

    这道题 连续上升的三元组 且已经按照第一维排好序了. 直接上CDQ分治即可 当然也是可以2-Dtree解决这个 问题 但是感觉nlog^2 比nsqrt(n)要快一些.. 算是复习一发CDQ分治吧 也 ...

  3. 最优化算法【牛顿法、拟牛顿法、BFGS算法】

    一.牛顿法 对于优化函数\(f(x)\),在\(x_0\)处泰勒展开, \[f(x)=f(x_0)+f^{'}(x_0)(x-x_0)+o(\Delta x) \] 去其线性部分,忽略高阶无穷小,令\ ...

  4. 谁来教我渗透测试——黑客必须掌握的Linux基础

    上一篇我们学习了Windows基础,今天我们来看一看作为一名渗透测试工程师都需要掌握哪些Linux知识.今天的笔记一共分为如下三个部分: Linux系统的介绍 Linux系统目录结构.常用命令 Lin ...

  5. github 错误

    Push failed: Unable to access 'https://github.com/infoo/Neo4j.git/': The requested URL returned erro ...

  6. .Net Core 3.0依赖注入替换 Autofac

    今天早上,喜庆的更新VS2019,终于3.0正式版了呀~ 有小伙伴问了一句Autofac怎么接入,因为Startup.ConfigureServices不能再把返回值改成IServiceProvide ...

  7. GPS位置显示在地图上

    源码分析博客地址:https://blog.csdn.net/wuquan_1230/article/details/79614974 工具下载地址:http://download.csdn.net/ ...

  8. SpringBoot设置跨域的几种方式

    什么是跨域? 浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域 原因: 由于浏览器的同源策略, 即a网站只能访问a网站的内容,不能访问b网站的内容. 注意: 跨域问题 ...

  9. Java中增强一个类的几种方法

    今天有人问我怎么增强一个类的功能.博客刚好没东西,今天就讲讲增强类. 增强的手段有三种类型: 1.继承或者实现接口:特点是被增强对象不能变,增强的内容不能变. 2.装饰着模式:特点是被增强对象可变,但 ...

  10. 《Python测试开发技术栈—巴哥职场进化记》—软件测试工程师“兵器库”

    上文<Python测试开发技术栈-巴哥职场进化记>-初来乍到,请多关照 我们介绍了巴哥入职后见到了自己的导师华哥,第一次参加团队站会,认识了团队中的开发小哥哥和产品小姐姐以及吃到了公司的加 ...