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

2024-05-05 16:28

本文主要是介绍去哪儿网机票服务请求体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请求,然后正则匹配出来吧。

        至此,代码扣完!

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

这篇关于去哪儿网机票服务请求体bella值逆向的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

SpringBoot请求参数传递与接收示例详解

《SpringBoot请求参数传递与接收示例详解》本文给大家介绍SpringBoot请求参数传递与接收示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录I. 基础参数传递i.查询参数(Query Parameters)ii.路径参数(Path Va

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright