去哪儿网机票服务请求体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

相关文章

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

springboot filter实现请求响应全链路拦截

《springbootfilter实现请求响应全链路拦截》这篇文章主要为大家详细介绍了SpringBoot如何结合Filter同时拦截请求和响应,从而实现​​日志采集自动化,感兴趣的小伙伴可以跟随小... 目录一、为什么你需要这个过滤器?​​​二、核心实现:一个Filter搞定双向数据流​​​​三、完整代码

AJAX请求上传下载进度监控实现方式

《AJAX请求上传下载进度监控实现方式》在日常Web开发中,AJAX(AsynchronousJavaScriptandXML)被广泛用于异步请求数据,而无需刷新整个页面,:本文主要介绍AJAX请... 目录1. 前言2. 基于XMLHttpRequest的进度监控2.1 基础版文件上传监控2.2 增强版多

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

Nginx配置系统服务&设置环境变量方式

《Nginx配置系统服务&设置环境变量方式》本文介绍了如何将Nginx配置为系统服务并设置环境变量,以便更方便地对Nginx进行操作,通过配置系统服务,可以使用系统命令来启动、停止或重新加载Nginx... 目录1.Nginx操作问题2.配置系统服android务3.设置环境变量总结1.Nginx操作问题

Qt实现发送HTTP请求的示例详解

《Qt实现发送HTTP请求的示例详解》这篇文章主要为大家详细介绍了如何通过Qt实现发送HTTP请求,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、添加network模块2、包含改头文件3、创建网络访问管理器4、创建接口5、创建网络请求对象6、创建一个回复对