• 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文件在这个链接,欢迎评论与我交流:

  • 相关阅读:
    全网最透彻的Netty原理讲解 一
    jvm关闭时的钩子函数
    【TI毫米波雷达笔记】MMwave毫米波雷达API配置及驱动(以IWR6843AOP为例)
    Java函数式编程
    React-路由导航
    csdn怎么提问问题?
    Batch Normalization的优势
    充分利用自动化测试的 10 个最佳实践
    外贸跨境电商网站常用的在线客服系统
    记一次接口分析
  • 原文地址:https://blog.csdn.net/weixin_46187354/article/details/128028092