淘宝登录JS加密算法

《反爬虫AST原理与还原混淆实战》书稿内容

声明:本教程从安全角度出发讲解,只为增加读者的安全知识,提升读者数据安全意识,以及对于病毒和钓鱼网站的防护能力。绝无其他任何目的与用途。

淘宝作为国内最大的网络零售商,对于用户信息安全的保护可谓固若金汤。本文将讲解淘宝在用户登录时如何将用户的个人信息加密以达到保护用户数据安全的目的。

我们在淘宝的登录页面输入自己的用户名和密码以登录的时候,会发现在NETWORK选项卡中有一个POST请求包。

我们向下翻滚以查看我们发送的数据,会发现它们已经面目全非,而且多出了许多额外的参数。部分参数如下,对于用户来讲,最关心的莫过于自己的密码,那我们的密码在哪里呢?是否是赤裸裸地传输而没有任何防护呢?显然不是,我们发现存在参数password2对我们的密码进行了加密,此时我们的密码是非明文传输的,即便被别人截获了数据包,他也不会看到我们的密码。

那我们接下来就分析一下,看看淘宝对我们的密码到底进行了多大强度的加密,是否很容易被别人拿到手后破解,请随笔者分析。

按下图的顺序依次点击和输入信息,我们可以定位到淘宝网站加密信息的JS脚本。

点击3后中间会弹出代码框,我们点击代码框左下角的“{}”符号格式化代码,让它能够以更利于我们查看的格式展示。然后搜索我们的关键词password2

我们可以发现password2的数值其实是t,而t有来源于8179行的rsaPassword,所以我们点击数字8179,让它变成黄色,这样我们就在rsaPassword下断点,等网站执行到这一行就会停下,便于我们分析。

接下来我们回到登录页面,点击登录,这样就进入了DEBUG模式,我们停在了断点位置。然后按F11,直到它进入rsaPassword这个函数,如下所示,我们发现它是典型的RSA加密,通过setPublic设置了公钥,之后进行了加密。

那我们现在就需要找到e的值,我们可以在e处下断点,按下F11进入,会发现它实际上是D函数。而且下边还存在setPublic和encrypt两个函数,这样一来我们的加密函数就都找到了。

然后我们按下F11,回到setPublic函数,查看右边的Scope,找到rsaModulus和rsaExponent复制下来。

我们将刚才找到的有关的加密JS代码都专门复制下来,大约500行左右,存储在本地的JS文件里边查看,如下所示部分:

......
......rsaPassword = function(t) {var e = new D;return e.setPublic("d3bcef1f00424f3261c89323fa8cdfa12bbac400d9fe8bb627e8d27a44bd5d59dce559135d678a8143beb5b8d7056c4e1f89c4e1f152470625b7b41944a97f02da6f605a49a93ec6eb9cbaf2e7ac2b26a354ce69eb265953d2c29e395d6d8c1cdb688978551aa0f7521f290035fad381178da0bea8f9e6adce39020f513133fb", "10001"),e.encrypt(t)
}function getPwd(pwd) {return rsaPassword(pwd);
}

然后就可以通过Python脚本来执行这个JS脚本从而获取我们的加密参数,我们来验证一下:

import execjsdef getpwd(password):with open('password2.js', 'r', encoding='utf8')as f:content = f.read()jsdata = execjs.compile(content)pw = jsdata.call('getPwd', password)print('pw:', pw)return pwif __name__ == '__main__':getpwd('123456')

运行结果如下:

至此,淘宝登录的JS密码防护措施已经分析完毕。希望各位读者能够得到启迪。

JS安全防护算法与逆向分析——淘宝登录JS加密算法相关推荐

  1. JS安全防护算法与逆向分析——新浪微博登录JS加密算法

    新浪微博登录JS加密算法 声明:本教程从安全角度出发讲解,只为增加读者的安全知识,提升读者数据安全意识,以及对于病毒和钓鱼网站的防护能力.绝无其他任何目的与用途. 新浪微博作为国内最大的即使分享社交平 ...

  2. Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名

    原文:Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名 源代码下载地址:http://www.zuidaima.com/share/1550463397874 ...

  3. python爬取并分析淘宝商品信息

    python爬取并分析淘宝商品信息 背景介绍 一.模拟登陆 二.爬取商品信息 1. 定义相关参数 2. 分析并定义正则 3. 数据爬取 三.简单数据分析 1.导入库 2.中文显示 3.读取数据 4.分 ...

  4. python爬取数据分析淘宝商品_python爬取并分析淘宝商品信息

    python爬取并分析淘宝商品信息 Tip:本文仅供学习与交流,切勿用于非法用途!!! 背景介绍 有个同学问我:"XXX,有没有办法搜集一下淘宝的商品信息啊,我想要做个统计".于是 ...

  5. 淘宝flexible.js+rem适配pc端

    1.引入flexible.js文件: (function flexible(window, document) {var docEl = document.documentElement;var dp ...

  6. python行业中性_Python抓取分析淘宝连衣裙数据,128元真的是低价人群分界线吗?...

    1.我是一个低价人群用户 上周发表文章<一个匿名用户的淘宝"连衣裙"大观>后,交流群里面很热闹地讨论了起来,小伙伴们都在秀自己的淘宝连衣裙搜索价格,相较于小伙伴们搜索出 ...

  7. 用户行为分析的背景以及几种模型分析、实例分析——淘宝用户行为分析

    这里写目录标题 1. 绪论 1.1了解用户行为分析 1.2用户行为分析的目的 2.用户行为分析的具体内容 2.1用户行为分析的指标 2.2用户行为分析模型 2.2.1漏斗模型分析 2.2.2用户留存分 ...

  8. python大数据可视化分析淘宝商品,开专卖店不行啊

    python大数据可视化分析淘宝商品,开专卖店不行啊 现如今大数据分析异常火爆,如何正确分析数据,并且抓住数据特点,获得不为人知的秘密?今天沉默带你用python爬虫,爬取淘宝网站进行淘宝商品大数据分 ...

  9. 淘宝flexible.js文件实现弹性布局

    淘宝flexible.js到底是用来做啥的 优点 1. 提供了用一套 css 去适应多种屏幕的方法 * 2.不用考虑适应屏幕的高宽比.物理尺寸等,切图成本比较低 缺点 只用这个方案去做,得到的是一个静 ...

最新文章

  1. 使用PHPStorm 配置自定义的Apache与PHP环境
  2. 火爆背后的挑战:直播平台的高并发架构设计
  3. 使用OpenTelemetry搭配Zipkin构建NetCore分布式链路跟踪 | WebAPI + gRPC
  4. mysql 事务实例_mysql实现事务的提交和回滚实例
  5. sql 插入多行数据的问题
  6. 读完这个我懂了JNDI
  7. 【正点原子Linux连载】第三章 初识Qt摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
  8. 如何制作一个优秀的个人网站?
  9. [源码和文档分享]基于QT的英文文献的编辑与检索系统的实现
  10. struts2漏洞批量检查
  11. 如何使用CH340G模块给51单片机下载程序
  12. SInC的下载及使用
  13. MVC中的ViewData、ViewBag和TempData
  14. ffmpeg如何实现MP3转码g711a
  15. ECHAP:身份认证的安全协议
  16. (转)关于如何学好游戏3D引擎编程的一些经验
  17. 《Java 8实战》 之 Lambda
  18. 求出 2 到 n 之间 (含 n)的所有素数。
  19. 用Python量化海龟交易法则
  20. k8s部署vue项目

热门文章

  1. Boy or Girl
  2. 解说vue开发过程中的“深坑”,HeyUI组件库开发总结
  3. 图解转盘抽奖布局样式,以小程序为例
  4. 超融合架构提升单台服务器性能,浅谈超融合架构
  5. 22.8.29 C语言作业5道
  6. 第十四届蓝桥杯模拟赛【第三期】Python
  7. 华谊嘉信:依托大数据,构建智能化运营平台!
  8. Android进阶——Android控制端连接同一网段Wi-Fi家用打印机小结
  9. 2022—SWJTU-寒假ACM校队选拔赛第二场-题解
  10. 还有脸睡?微信小程序与智能硬件终端蓝牙BLE通讯,实现WIFI配网这么简单都不会,周公都得踹醒你!