自己写的逆向案例三——某蔬菜小说登录接口逆向

2024-04-18 21:44

本文主要是介绍自己写的逆向案例三——某蔬菜小说登录接口逆向,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网址:aHR0cHM6Ly9mYW5xaWVub3ZlbC5jb20v

登录接口抓包,发现电话号码和密码都进行了加密。开始跟栈。

在相应位置打上断点,点击登录,其中在右侧发现已经进行了加密。

现在判断异步栈有没有是加密位置。第一个异步栈,已经是经过加密的了。现在看第二个异步栈。

点击进入第二个异步栈f.request

又看到了最熟悉的位置,打上断点,进入f函数的第一个。看参数又没有加密。 

在控制台打印f

进入第一个函数,并打上断点,发现参数已经经过了加密,因此直接跳过异步栈,往前看。

进入疑似栈,并在疑似位置打上断点,找到了未加密的参数。电话和密码。

逐步点击,跳过下一步函数调用,在控制台打印,发现r就是加密后的数据,加密位置,k(d(,打印d,发现是一个内置函数assign。

现在进入k函数,并打上断点。 发现k函数接收两个参数e是电话号码和密码,和t,分别复制e和t

再在o处打断点,执行到o,发现最后返回的o就是加密后的数据。

复制整个k函数到pycharm中。

运行发现d未定义,在控制台打印。 发现。

在 JavaScript 中,Object 是一个全局对象,不需要额外引入。你可以直接使用 Object 对象,而无需使用 require 来导入它。

如果你想在 Node.js 环境中使用某个特定的 JavaScript 库或模块,你需要使用 require 来导入它。但对于 Object 这样的内置对象,不需要额外导入,你可以直接在代码中使用它。

改写

Object.assign
# 将d替换成上述

结果发现C函数未定义

直接找到其位置并复制,其实就是k的上一个函数

复制后运行,得到最后的结果。 

 完整代码:

t = ["username","mobile","email","account","password",
]
e = {"mobile": "18720180853","password": "123456"
}
var O, E, C = function(e) {var t, n = [];if (void 0 === e)return "";t = function(e) {for (var t, n = e.toString(), r = [], i = 0; i < n.length; i++)0 <= (t = n.charCodeAt(i)) && t <= 127 ? r.push(t) : 128 <= t && t <= 2047 ? (r.push(192 | 31 & t >> 6),r.push(128 | 63 & t)) : (2048 <= t && t <= 55295 || 57344 <= t && t <= 65535) && (r.push(224 | 15 & t >> 12),r.push(128 | 63 & t >> 6),r.push(128 | 63 & t));for (var o = 0; o < r.length; o++)r[o] &= 255;return r}(e);for (var r = 0, i = t.length; r < i; ++r)n.push((5 ^ t[r]).toString(16));return n.join("")
};
k = function(e, t) {var n, r = 0, i = 0;if ("object" != typeof e)return e;if (!t || t.length <= 0)return e;for (var o = Object.assign({mix_mode: r}, e), a = 0, s = t.length; a < s; ++a)void 0 !== (n = o[t[a]]) && (r |= 1,i |= 1,o[t[a]] = C(n));return o.mix_mode = r,o.fixed_mix_mode = i,o
};

这篇关于自己写的逆向案例三——某蔬菜小说登录接口逆向的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/915903

相关文章

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Python get()函数用法案例详解

《Pythonget()函数用法案例详解》在Python中,get()是字典(dict)类型的内置方法,用于安全地获取字典中指定键对应的值,它的核心作用是避免因访问不存在的键而引发KeyError错... 目录简介基本语法一、用法二、案例:安全访问未知键三、案例:配置参数默认值简介python是一种高级编

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动