当前位置: 首页 > news >正文

js逆向tips-某思录登录

0. 写在最前

  • 现在很多时候我们再网页上进行操作时都是用http协议进行一个交流,前端后也是如此,现在的开发模式大部分都是前后端分离的一个交互模式,那就意味着前端发送请求时也是和我们点击按钮一样去向后端发送一个请求,那这种请求就可以被模拟。 甚至是被一些自动化程序模拟以达到批量获取数据的目的。
  • 因此为了防止被程序模拟,前端一般都会设置加密函数对正常用户在浏览器传来的数据进行加密,然后后端也会有一样的加密函数进行加密然后进行对比,即反爬虫技术,这些函数一般都设置在复杂的js代码里面,让破密者难以模拟复现
  • 而js逆向要做的就是就是复现这些前端加密代码,然后伪装成正常用户与后端程序沟通以拿到返回体的正常的数据
  • 此专栏是记录以下一些破解的有意思的验证,仅仅用作学习为目的,绝不会有任何盈利,如果损害到了网站开发者的利益,请立即联系我进行删除,本人邮箱:zh00612@126.com

1. 触发登录抓包

在这里插入图片描述

2. 找到加密点下断点

首先随便输入一些错误的账号和密码,可以抓包发现登录后提交的参数有password和username均是在前端做了一些加密后再请求后端
在这里插入图片描述
再搜索栏找到加密位置
在这里插入图片描述
在这里插入图片描述

按照经验,有一个jsencode的加密函数名,大概了就是它了,我们加断点分析

3. 重复点击触发断点分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们找到加密函数jsencode后点击进定义点,我们可以发现jsencode这个函数只有textaes_key这两个参数,而text传入的是我们的usernamepassowrd,而aes_key是一个定值,因此我们只要复现加密对象Cryptojs就可以了

在这里插入图片描述
在这里插入图片描述

可以观察到,Cryptojs是一个对象里面包含有很多的方法,因此我的思路是直接复现整个对象,直接复制整个js文件到本地进行调试

在这里插入图片描述
在这里插入图片描述

为了导出对象,我们定义了一个全局变量root对象,将Cryptojs赋值给他,这样我们可以达到复现加密的一个形式

在这里插入图片描述

在这里插入图片描述

加密后输出console.log的加密字符串和返回体一样,这样我们就成功模拟了前端加密,可以和后端进行交互

以上就是我的js逆向技术的分享,js文件在这个链接,欢迎评论与我交流:

相关文章:

  • 为了摸鱼,我开发了一个工具网站
  • OpenCV图像处理——(实战)答题卡识别试卷
  • 朋友电脑密码忘了,我当场拔了她的电源,结果。。。
  • SpringBoot: Controller层的优雅实现
  • LeetCode135. 分发糖果(贪心算法)
  • c语言:初识结构体
  • ASEMI肖特基二极管SBT40100VFCT规格,SBT40100VFCT封装
  • 谁能拒绝一个会动的皮卡丘挂件
  • docker 安装minio
  • 云原生系列 五【轻松入门容器基础操作】
  • Python - 异常处理
  • 经济师十大专业通过人数分析!选专业有谱了!
  • wpf布局学习二 wpf xaml 与android xml界面对比, C++图片旋转与缩放好复杂放弃
  • C语言百日千题系列之《忘情水题》第一日
  • CNN经典模型之ALexNet、ResNet、DenseNet总结和比较
  • 什么是固话号码认证?固话号码认证有用吗?
  • select......for update会锁表还是锁行?
  • 【强化学习论文清单】AAAI-2022 | 人工智能CCF-A类会议(附链接)
  • Android11 framework Handler
  • Linux系统漏洞本地提权