实战案例浅析JS加密 - 基础总结篇

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 实战案例浅析JS加密 - 基础总结篇

QQ空间的解密思路整理

本篇文章只是提供解密思路,不提供代码。

找了一圈发现越是大厂加密越是简单,安全防护之类的完全不靠js加密,扫码登陆才是关键。比如微信公众号平台的登陆加密就是简单的MD5,但人家有扫码登陆,此类情况比比皆是,所以爬虫越来越难做了。

老规矩先找加密位置,相比于上一次的XXTEA加密,这次的加密参数是p,这个关键字太过常见,我们不以这个作为检索条件,否则干扰项太多。先检索其他加密的参数看看能不能发现什么。

按照上图断点的位置,发现了类似加密的位置,像此类带关键字的很容易就可以发现目标代码,我们先打个断点测试一下。

成功进入断点,说明判断没错。接下来我们这要把关键加密的代码抠出来补全即可。

理清参数

扣代码不仅仅是复制粘贴,需要先理清楚加密思路,像这里的$.Encryption.getEncryption(n, pt.plogin.salt, i.verifycode, pt.plogin.armSafeEdit.isSafe)这种一个加密函数的还是比较清晰,我们先要把参数补齐,再找关键的加密函数。

经过检索可以发现,这里的n就是我们传入的密码。

pt.plogin.salt是传入的用户名加密后的结果。

i.verifycode获取的是验证码的值。

pt.plogin.armSafeEdit.isSafe找了半天,打上断点发现是个空值。

现在所有的参数已经找齐了,我们直接进入关键加密的函数就可以了,打上断点把鼠标放在关键函数的位置在出现的蓝色链接上点击即可跳转。

把上面找的代码和关键加密的方法组装就可以得到加密后的参数了。

总结

以上加上前面的两篇就是js基础解密的部分了,基础的方法用三篇概述只能说个大概,之后会继续写基础部分的文章就是没有这三篇这么详细,没有动手自己走一遍流程永远只能停留在基础。

实战案例浅析JS加密 - DES与Base64

实战案例浅析JS加密 - RSA与XXTEA

总的来说这三篇文章核心就是是下面这个流程。

基本流程的复述
  1. 如果网页有跳转,必须勾选 preservelog 防止丢包
  2. 看一下有没有框架 右键查看框架源代码(弹出式登陆界面)
  3. 登陆尽量使用错误密码 防止跳转
  4. 查看关键登陆包 分析哪些参数是加密的
  5. 使用别的浏览器分析哪些参数是固定的值
  6. 初步猜测加密方法
  7. 搜索
  • 直接搜索参数
  • pwd=
  • pwd =
  • pwd:
  • pwd :
  • 密码框地方右键 检查 查看 id name type
  1. 找到加密的地方(重点)
  2. 调试
  3. 找出所有的加密代码
  • 从最后一步开始写起,缺啥找啥
  • 如果找的是函数的话 search 要带上 function xxx
  • 如果看到加密的地方有个类,并且之后是用 prototype 把方法加在原生对象上的话,要把
    所有加在原生对象上的方法都找出来
  • 函数找多了没关系,只要不报错不会影响结果,但是不能找少了

基础的解密其实很简单了,只要自己动手去练习基本不会有太大问题。

流程捋清楚之后就是关于JS的学习,可以去B站上面看看。

https://www.bilibili.com/video/av34087791

最后就是心态问题,耐心在js调试上很关键,一直报错心态很容易崩,一烦躁反而调不出来了。

以上。

相关文章
|
28天前
|
自然语言处理 JavaScript 前端开发
深入理解JavaScript中的闭包:原理与实战
【10月更文挑战第12天】深入理解JavaScript中的闭包:原理与实战
|
19天前
|
JavaScript 前端开发 开发者
探索JavaScript原型链:深入理解与实战应用
【10月更文挑战第21天】探索JavaScript原型链:深入理解与实战应用
26 1
|
1月前
|
SQL 前端开发 JavaScript
Nest.js 实战 (十五):前后端分离项目部署的最佳实践
这篇文章介绍了如何使用现代前端框架Vue3和后端Node.js框架Nest.js实现的前后端分离架构的应用,并将其部署到生产环境。文章涵盖了准备阶段,包括云服务器的设置、1Panel面板的安装、数据库的安装、域名的实名认证和备案、SSL证书的申请。在部署Node服务环节,包括了Node.js环境的创建、数据库的配置、用户名和密码的设置、网站信息的填写、静态网站的部署、反向代理的配置以及可能遇到的常见问题。最后,作者总结了部署经验,并希望对读者有所帮助。
119 11
|
1月前
|
存储 JavaScript 前端开发
前端开发:Vue.js入门与实战
【10月更文挑战第9天】前端开发:Vue.js入门与实战
|
11天前
|
前端开发 JavaScript
JavaScript新纪元:ES6+特性深度解析与实战应用
【10月更文挑战第29天】本文深入解析ES6+的核心特性,包括箭头函数、模板字符串、解构赋值、Promise、模块化和类等,结合实战应用,展示如何利用这些新特性编写更加高效和优雅的代码。
26 0
|
1月前
|
数据采集 JSON 前端开发
JavaScript逆向爬虫实战分析
JavaScript逆向爬虫实战分析
|
1月前
|
前端开发 JavaScript API
JavaScript逆向爬取实战——使用Python实现列表页内容爬取(二)
JavaScript逆向爬取实战——使用Python实现列表页内容爬取(二)
|
1月前
|
前端开发 JavaScript API
JavaScript逆向爬取实战——使用Python实现列表页内容爬取(一)
JavaScript逆向爬取实战——使用Python实现列表页内容爬取(一)
|
1月前
|
前端开发 网络协议
Nest.js 实战 (十四):如何获取客户端真实 IP
这篇文章介绍了在Nest.js应用中获取客户端真实IP地址的问题及解决方法。问题出现在使用本地代理时,请求的IP地址总是返回::1或::ffff:127.0.0.1。为解决这个问题,需要确保代理服务器正确设置转发头如X-Forwarded-For或X-Real-IP,后端服务能够读取这些头信息来确定客户端的IP地址。文章以作者自己的OpenResty应用为例,展示了如何通过配置反向代理和设置X-Forwarded-For头来获取真实IP地址,并提供了相关的代码示例。最后,文章提到了使用这个解决方案后的实际效果,例如在操作日志中记录真实IP地址。
|
1月前
|
前端开发 JavaScript
JavaScript动态渲染页面爬取——CSS位置偏移反爬案例分析与爬取实战
JavaScript动态渲染页面爬取——CSS位置偏移反爬案例分析与爬取实战