去哪儿网机票服务请求体bella值逆向

         作者声明:文章仅供学习交流与参考!严禁用于任何商业与非法用途!否则由此产生的一切后果均与作者无关!如有侵权,请联系作者本人进行删除!

一、加密定位

        直接全局搜索bella,在可疑的地方下断,很容易就能断到这个位置。

       

        跟进bella这个方法,发现是混淆代码,在return处下断,发现走try里的return。

 

        继续跟进这个方法在方法内所有return处下断,很容易就来到了真正加密的位置。

二、扣代码

        把该函数内和return变量有关的先扣下来

function get_bella(){var _0x24fe7b = _0x318499(_0x481ca8);var _0x33dbda = (0x0,_0x5b06ff[_0x5a69('0x8a')])();var _0x1cf816 = _0x161da4[_0x5a69('0x8a')][_0x5a69('0x9a')](_0x33dbda, {});var _0x4051b6 = (0x0,_0x38cd63[_0x5a69('0x8a')])(JSON[_0x5a69('0x70')](_0x1cf816), _0x3d0fe0[_0x5a69('0x8a')]);var _0x2fa5d6 = (0x0,_0xd98ca5[_0x5a69('0x8a')])();var _0x15c03b = _0x24fe7b['bParam'] + _0x4051b6 + _0x2fa5d6 + JSON[_0x5a69('0x70')](_0x24fe7b[_0x5a69('0x688')]);var _0x5e754e = _0x5625ac[_0x5a69('0x8a')][_0x5a69('0x111')](_0x15c03b);var _0x15b51a = window['june_v'] + '##' + _0x5e754e + '##' + _0x4051b6 + '##' + _0x2fa5d6 + '##' + _0x24fe7b[_0x5a69('0x688')];
}console.log(get_bella());   

        因为是动态js,刷新重新下断,把我们所扣的代码都下上断,开始调试。

2.1 第一个变量

        调用一个函数,传入的是明文数据,就是请求体的数据,对其处理变成键值拼接成一个键,所有键合成一个列表成一个键。直接改写,或者把这个方法扣下来。我们采用扣这个方法。因为比较好扣,只需要扣下这种ob混淆的大数组,偏移自执行函数和调用函数就可以了。而且针对ob混淆,这些一般都是要扣下来的

2.2 第二个变量

        输出发现生成的一个大数组,刷新两次发现只有piccolo和shirley这两个是变化的,这个方法没有传变量,跟进这个方法又发现取了环境变量的东西,扣的话肯定要补环境的,补环境还是比较头疼的,我们先写死,看后面的情况,如果也要补环境就补,不补的话就找piccolo和shirley这两个生成的地方。

2.3 第三个变量

        这个变量发现就是把上一个变量简单的变成来键值的对象

        那就简单了,扣这个函数试试,如果简单就扣下来,麻烦的话就重写。发现补了这个方法后就直接出了结果。

2.4 第四个变量

        调用一个函数,传入两个参数,第一个参数是上一步生成的,第二个参数刷新几次发现是个定值。就剩扣这个函数了。补了两个函数和一个location里href的环境就通过了

2.5 第五个变量

        是调用一个函数,没有传参数,跟进这个函数发现;randon字眼,那就是随机值了,控制台运行几次确实时变化的,看来可以写死了。不想写死就扣下来也很简单。

2.6 第六个变量

        这个变量没有要扣的,都是上几步生成的。

2.7 第七个变量

        是调用一个函数,传入上步生成的变量,进入这个函数,发现是HmacSHA1摘要算法,那就先直接引库,然后验证是否是标准算法。这个算法需要有key,key就是函数上一行生成额,扣下来

        把传入参数写成和服务器一样的,验证发现结果和服务器一样,说明是标准算法,我们写死没有问题。

2.8 第八个变量

        终于到了最终生成的值语句了,就是把上几步生成的变量加载一起,其中第一个window['june_v']是这个jis包开始直接赋值的,

别高兴,我们在扣第二个变量可是写死的,其中piccolo和shirley这个变量可是变化。

三、 piccolo和shirley变量

3.1 piccolo

        发现其是调用一个没有传参的函数。

        跟进这个函数发现是走的else分支。

        直接扣下来,补两个函数发现就完成了。但是要注意,里面取来时间戳,还有个random随机值,这两个都是变化的,影响其他变量的验证。

3.2 shirley

        这个发现是取的window里的属性shirley。

        那就直接hookwindow属性,最终发现是一个请求页面返回的

        那就直接用python请求,然后正则匹配出来吧。

        至此,代码扣完!

        整体来说这个加密还是比较简单的,关键点是找准加密位置,能改写就改写,能引库就引库,代码简单就扣代码。千万别硬钢!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能家居4 -- 添加接收消息的初步处理

这一模块的思路和前面的语言控制模块很相似&#xff0c;差别只是调用TCP 去控制 废话少说&#xff0c;放码过来 增添/修改代码 receive_interface.c #include <pthread.h> #include <mqueue.h> #include <string.h> #include <errno.h> #include <…

[初阶数据结构】单链表

前言 &#x1f4da;作者简介&#xff1a;爱编程的小马&#xff0c;正在学习C/C&#xff0c;Linux及MySQL。 &#x1f4da;本文收录于初阶数据结构系列&#xff0c;本专栏主要是针对时间、空间复杂度&#xff0c;顺序表和链表、栈和队列、二叉树以及各类排序算法&#xff0c;持…

k8s安装nginx Ingress超详细指南

在本全面的 Ingress 指南中&#xff0c;您将学习如何在 Kubernetes 上设置 Nginx Ingress控制器并使用 DNS 配置 Ingress。 目前有两种 Nginx Ingress 控制器。 kubernetes 社区的 Nginx Ingress 控制器Nginx Inc 开发的 Nginx Ingress 控制器 我们将使用 Kubernetes 社区 N…

论文分享[cvpr2018]Non-local Neural Networks非局部神经网络

论文 https://arxiv.org/abs/1711.07971 代码https://github.com/facebookresearch/video-nonlocal-net 非局部神经网络 motivation:受计算机视觉中经典的非局部均值方法[4]的启发&#xff0c;非局部操作将位置的响应计算为所有位置的特征的加权和。 非局部均值方法 NLM&#…

用keras识别狗狗

一、需求场景 从照片从识别出狗狗 from keras.applications.resnet50 import ResNet50 from keras.preprocessing import image from keras.applications.resnet50 import preprocess_input, decode_predictions import numpy as np# 加载预训练的ResNet50模型 model ResNet5…

Flask-HTTP请求、响应、上下文、进阶实验

本节主要目录如下&#xff1a; 一、请求响应循环 二、HTTP请求 2.1、请求报文 2.2、Request对象 2.3、在Flask中处理请求 2.4、请求钩子 三、HTTP响应 3.1、响应报文 3.2、在Flask中生成响应 3.3、响应格式 3.4、Cookie 3.5、session&#xff1a;安全的Cookie 四、…

【仪酷LabVIEW AI工具包案例】使用LabVIEW AI工具包+YOLOv5结合Dobot机械臂实现智能垃圾分类

‍‍&#x1f3e1;博客主页&#xff1a; virobotics(仪酷智能)&#xff1a;LabVIEW深度学习、人工智能博主 &#x1f384;所属专栏&#xff1a;『仪酷LabVIEW AI工具包案例』 &#x1f4d1;上期文章&#xff1a;『【YOLOv9】实战二&#xff1a;手把手教你使用TensorRT实现YOLOv…

数据结构学习——线性表、顺序表

1.线性表 线性表 &#xff08; linear list &#xff09; 是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构&#xff0c;也就说是连续的一…

项目管理-项目资源管理2/2

项目管理&#xff1a;每天进步一点点~ 活到老&#xff0c;学到老 ヾ(◍∇◍)&#xff89;&#xff9e; 何时学习都不晚&#xff0c;加油 资源管理&#xff1a;6个过程“硅谷火箭管控” ①规划资源管理&#xff1a; 写计划 ②估算活动资源&#xff1a;估算团队资源&…

渗透之sql盲注(时间/boolean盲注)

sql盲注&#xff1a;sql盲注意思是我们并不能在web页面中看到具体的信息&#xff0c;我们只能通过输入的语句的真假来判断。从而拿到我们想要的信息。 我们通常使用ascii值来进行盲注。 目录 手动注入&#xff1a; 时间盲注&#xff1a; 布尔盲注&#xff1a; python脚本注…

LabVIEW波浪发电平台浮筒取能效率数据采集系统

LabVIEW波浪发电平台浮筒取能效率数据采集系统 随着化石能源的逐渐减少以及能源价格的上升&#xff0c;寻找可替代的、可再生的、清洁的能源成为了世界各国的共识。波浪能作为一种重要的海洋能源&#xff0c;因其巨大的潜力和清洁性&#xff0c;近年来受到了广泛关注。开发了一…

(六)JSP教程——out对象

out对象是在JSP中经常使用到的对象&#xff0c;它本质上是一个输出流&#xff0c;前面已经多次使用&#xff0c;我们经常使用它的print()和println()方法&#xff0c;这些方法主要用于实现客户端数据的输出。通过out对象也可以直接向客户端发送一个由程序动态生成的HTML文件。 …

Docker-Compose 容器集群的快速编排

Docker-compose 简介 Docker-Compose项目是Docker官方的开源项目&#xff0c;负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层&#xff0c;分别是 工程&#xff08;project&#xff09;&#xff0c;服务&#xff08;service&#xff09;以及容器&…

JavaEE企业级开发中常用的JDK7和JDK8的时间类

JDK7时间类 全世界的时间有一个统一的计算标准 在同一条经线上的时间是一样的 格林威治时间 简称GMT 计算核心 地球自转一天是24小时 太阳直射正好是12小时 但是误差太大 现在用原子钟来代替 用铯原子震动的频率来计算时间&#xff0c;作为世界的标准时间UTC 中国标准时间…

在国企分公司做信息宣传新闻投稿的经验分享

作为一名国企分公司的信息宣传工作者,我亲历了从传统投稿方式到数字化转型的全过程,这段经历既充满了挑战,也收获了成长。回首最初的日子,那些用邮箱投稿的时光,至今仍让我感慨万千。 初尝辛酸,邮箱投稿的艰难岁月 刚接手信息宣传工作时,我满腔热情,却很快被现实的冷水浇了个透…

c语言实现贪吃蛇小游戏————附全代码!!!

目录 1.Win32 API 1.1控制台应用程序 1.2控制台的名称&#xff0c;控制台窗口大小 1.3设置控制台光标位置 COORD - 光标坐标 GetStdHandle - 获取句柄 SetConsoleCursorPosition - 设置光标位置 封装一个设置光标的函数 1.4设置控制台光标的属性 CONSOLE_CURSOR_INFO …

栈PART 1

目录 1. 栈 1.1 栈的概念和结构 1.2 栈的实现 1.2.1 栈的顺序储存结构 1.2.2 栈的基本操作 1.3 有效的括号 1. 栈 1.1 栈的概念和结构 堆栈又名栈&#xff08;stack&#xff09;&#xff0c;它是一种运算受限的线性表。 限定仅在表尾进行插入和删除操作的线性表。这一端…

C++进阶之路:深入理解编程范式,从面向过程到面向对象(类与对象_上篇)

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

java-函数式编程-语法

目录 1、函数表现形式 分类 lambda表达式 参数类型可以全写&#xff0c;也可以全不写&#xff0c;但不能一部分写&#xff0c;一部分不写lambda 的省略策略&#xff1a;凡是可推导&#xff0c;都可以省略 方法引用 练习-判断语法正确性 练习-写出与方法引用等价的lambda表达式…

TCP三次握手四次挥手 UDP

TCP是面向链接的协议&#xff0c;而UDP是无连接的协议 TCP的三次握手 三次传输过程是纯粹的不涉及数据&#xff0c;三次握手的几个数据包中不包含数据内容。它的应用层&#xff0c;数据部分是空的&#xff0c;只是TCP实现会话建立&#xff0c;点到点的连接 TCP的四次挥手 第四…