基础js逆向练习-登录密码破解(js逆向)

练习平台:逆向账号密码

https://login1.scrape.center/

直接打开平台,输入密码账号,抓包找到加密的参数携带的位置,这边我们找到的是一个叫token的加密参数,这个参数的携带是一个密文

我们首先考虑一下搜索这个加密的参数位置,直接找到的话可以不必要使用一些调试手段。

很幸运第一个实际上就是这段加密的位置所在,那么我门直接使用这段加密的位置

目的还是这个e的内容的获取,那么我们直接拷贝下来这个e的内容。

var e = c.encode(JSON.stringify(this.form));

我们发现内层是一个将form转换成json的一个过程,那么这边我们直接查找这个form看一下这个form是什么内容。

可以明显看出来这是一个对象,这个对象中有两个属性,一个是username 一个是password ,那么我们可以直接获得这个对象,使用python传递即可。

 现在主要就是找到e,encode的加密函数的位置,然后进行补环境就可以解决这个问题了。

搜索直接跳转到这个位置。

一路复制粘贴查找出现报错的位置

继续开始找

复制粘贴

出现这个错误

这边可以看出来是一个三目运算符,里面是有一些浏览器环境检查的,我们直接找到这个值就可以。不需要在替换,替换是一个比较复杂的过程。

直接调试到这个位置,浏览器输入
 

buffer ? buffer.from && Uint8Array && buffer.from !== Uint8Array.from ? function (e) {
            return (e.constructor === buffer.constructor ? e : buffer.from(e)).toString("base64")
        }
            : function (e) {
                return (e.constructor === buffer.constructor ? e : new buffer(e)).toString("base64")
            }
            : function (e) {
                return btoa(utob(e))
            }

你想要跳转到这里需要刷新一下,主要是这个是页面加载中的,并不是网络请求中的。

所以这个_encode就是 

function (e) {
                return btoa(utob(e))
            }

直接找到这个函数缺少的部分utob

找到缺少的环境,re_utob 和cb_utob

复制粘贴到编译器

成功

        var cb_utob = function (e) {
            if (e.length < 2) {
                var r = e.charCodeAt(0);
                return r < 128 ? e : r < 2048 ? fromCharCode(192 | r >>> 6) + fromCharCode(128 | 63 & r) : fromCharCode(224 | r >>> 12 & 15) + fromCharCode(128 | r >>> 6 & 63) + fromCharCode(128 | 63 & r)
            }
            r = 65536 + 1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320);
            return fromCharCode(240 | r >>> 18 & 7) + fromCharCode(128 | r >>> 12 & 63) + fromCharCode(128 | r >>> 6 & 63) + fromCharCode(128 | 63 & r)
        }
        var utob = function (e) {
            return e.replace({}, cb_utob)
        }
        var _encode = function (e) {
            return btoa(utob(e))
        }
        var encode = function (e, r) {
            return r ? _encode(String(e)).replace(/[+\/]/g, (function (e) {
                return "+" == e ? "-" : "_"
            }
            )).replace(/=/g, "") : _encode(String(e))
        }
        form = {
            username: "1",
            password: "1"
        }
        var e = encode(JSON.stringify(form));
        console.log(e)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/267303.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

正餐---二叉树的OJ题

目录​​​​​​​ 前言&#x1f36f; 1. 检查两颗树是否相同&#x1f947; 1.1 思路分析&#x1fa99; 1.2 代码实现&#x1f9f0; 2. 单值二叉树&#x1f332; 2.1 思路分析&#x1f52e; 2.2 代码实现&#x1f488; 3. 二叉树的前序遍历&#x1f39f;️ 3.1 思路分…

【SpringBoot】之Security进阶使用

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《SpringBoot开发之Security系列》。&#x1f3af…

WORDPRESS付费会员插件Paid Memberships Pro v2.12.5 – Plugin + All Addons

WORDPRESS付费会员插件Paid Memberships Pro v2.12.5 – Plugin All Addons 简介&#xff1a; Paid Memberships Pro是一款功能强大的会员订阅和内容限制管理插件&#xff0c;适用于WordPress网站。它提供了丰富的特性和工具&#xff0c;帮助网站所有者轻松地创建和管理付费…

基于XML配置方式SSM框架西蒙购物网

文章目录 一、网站功能需求二、网站设计思路1、设计模式2、网站前台3、网站后台4、购物流程图 三、网站运行效果四、网站实现步骤&#xff08;一&#xff09;创建数据库与表1、创建数据库 - simonshop2、创建用户表 - t_user3、创建商品类别表 - t_category4、创建商品表 - t_p…

由于找不到msvcp110.dll无法继续执行此代码详细解析

在使用电脑的过程中&#xff0c;我们偶尔会遇到一些错误提示&#xff0c;其中最常见的就是“缺少xxx.dll文件”。这些文件是动态链接库&#xff08;DLL&#xff09;文件&#xff0c;它们包含了许多程序运行所需的函数和资源。而msvcp110.dll就是其中一个常见的DLL文件。这个错误…

matlab 点云最小二乘拟合空间直线(PCA法)

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫网站自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 见:matlab 点云最小二乘拟合空间直线。 二、代码实现 clc;clear; %% ----

LeetCode 1954. 收集足够苹果的最小花园周长

一、题目 1、题目描述 给你一个用无限二维网格表示的花园&#xff0c;每一个 整数坐标处都有一棵苹果树。整数坐标 (i, j) 处的苹果树有 |i| |j| 个苹果。 你将会买下正中心坐标是 (0, 0) 的一块 正方形土地 &#xff0c;且每条边都与两条坐标轴之一平行。 给你一个整数 need…

第11章 GUI Page429~430 步骤八 支持“十字”形

运行效果&#xff1a; 关键代码&#xff1a; 新增头文件&#xff1a; //item_cruciform.hpp #ifndef ITEM_CRUCIFORM_HPP_INCLUDED #define ITEM_CRUCIFORM_HPP_INCLUDED#include <cmath> #include "item_line.hpp"class CruciformItem : public IItem { pub…

多用户商城系统支付模块解决方案 多用户商城系统分账方案

最近很多朋友咨询多用户商城系统的支付模块解决方案&#xff0c;今天我分享两种主流的解决方式。 多用户商城系统是支持商户入驻的电商平台系统&#xff0c;因为涉及多商户入驻&#xff0c;所以有支付、结算方面的系列处理&#xff0c;目前主流的是两种方式。 一个是统一支付&…

Qt Splitter添加实例

选中界面的两个控件右键【布局】》【使用分裂器水平布局】或者【使用分裂器垂直布局】 界面添加横向竖向的splitter&#xff0c;并且添加比例&#xff0c;这类界面需要代码进行干预&#xff1a; 代码&#xff1a;

玩转Spring状态机

说起Spring状态机&#xff0c;大家很容易联想到这个状态机和设计模式中状态模式的区别是啥呢&#xff1f;没错&#xff0c;Spring状态机就是状态模式的一种实现&#xff0c;在介绍Spring状态机之前&#xff0c;让我们来看看设计模式中的状态模式。 1. 状态模式 状态模式的定义如…

BIT-6-指针(C语言初阶学习)

1. 指针是什么 2. 指针和指针类型 3. 野指针 4. 指针运算 5. 指针和数组 6. 二级指针 7. 指针数组 1. 指针是什么&#xff1f; 指针是什么&#xff1f; 指针理解的2个要点&#xff1a; 指针是内存中一个最小单元的编号&#xff0c;也就是地址平时口语中说的指针&#xff0c;通常…

代码随想录算法训练营 | day59 单调栈 503.下一个更大元素Ⅱ,42.接雨水

刷题 503.下一个更大元素Ⅱ 题目链接 | 文章讲解 | 视频讲解 题目&#xff1a;给定一个循环数组&#xff08;最后一个元素的下一个元素是数组的第一个元素&#xff09;&#xff0c;输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序&#xff0c;这个…

指标体系构建-04-非交易型数据指标体系

参考&#xff1a; 本文参考 1.接地气的陈老师的数据指标系列 2.saas是什么意思&#xff1f;国内十大saas平台 3.SaaS产品数据分析之指标与标签 举个&#x1f330; &#x1f330;&#x1f330;&#x1f330;&#x1f330;&#x1f330;&#x1f330; 运营类指标体系 运营类指…

向华为学习:IPD运作-PDP产品开发流程-概念阶段的关键活动

如大家所了解的&#xff0c;IPD集成产品开发体系先从需求着手&#xff0c;通过市场管理流程&#xff08;MM&#xff09;保证做正确的事&#xff0c;再通过产品开发流程&#xff08;PDP流程&#xff0c;很多时候直接称作IPD流程&#xff09;保证把事情做正确。整个过程两个流程协…

Jenkins Pipeline脚本优化:为Kubernetes应用部署增加状态检测

引言 在软件部署的世界中&#xff0c;Jenkins已经成为自动化流程的代名词。不断变化的技术环境要求我们持续改进部署流程以满足现代应用部署的需要。在本篇博客中&#xff0c;作为一位资深运维工程师&#xff0c;我将分享如何将Jenkins Pipeline进化至不仅能支持部署应用直至R…

MacOS+Homebrew+iTerm2+oh my zsh+powerlevel10k美化教程

MacOS终端 你是否已厌倦了MacOS终端的大黑屏&#xff1f; 你是否对这种美观的终端抱有兴趣&#xff1f; 那么&#xff0c;接下来我将会教你用最简单的方式来搭建一套自己的终端。 Homebrew的安装 官网地址&#xff1a;Homebrew — The Missing Package Manager for macOS (o…

SpringSecurity安全框架 ——认证与授权

目录 一、简介 1.1 什么是Spring Security 1.2 工作原理 1.3 为什么选择Spring Security 1.4 HttpSecurity 介绍&#x1f31f; 二、用户认证 2.1 导入依赖与配置 2.2 用户对象UserDetails 2.3 业务对象UserDetailsService 2.4 SecurityConfig配置 2.4.1 BCryptPasswo…

pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称及pip安装

问题原因 通常出现这种情况是因为cmd&#xff08;终端&#xff09;无法识别pip指令&#xff0c;环境变量中缺失pip程序路径&#xff0c;因此需要手动将pip所在路径添加到环境变量 确保环境中包含pip 通常情况下&#xff0c;配置的环境中都会默认包含pip&#xff0c;本文采用…

C++设计模式 #6 桥模式(Bridge)

动机 由于某些类型的固有的实现逻辑&#xff0c;使得它们具有两个变化的维度&#xff0c;乃至多个变化的维度。 如何应对这种“多维度的变化”&#xff1f;如何利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化&#xff0c;而不引入额外的复杂度 举个栗子 我们…