JS逆向之大众点评mtgsig

news2024/12/25 9:02:39

本教程仅限于学术探讨,也没有专门针对某个网站而编写,禁止用于非法用途、商业活动、恶意滥用技术等,否则后果自负。观看则同意此约定。如有侵权,请告知删除,谢谢!

目录

前言

一、先分析下接口参数

二、开导mtgsig

1.找加密入口

2.扣算法

3.验证算法


前言

最近了工作也不是很忙了,也不知道搞哈网站,今天就来搞搞大众点评的mtgsig网站如下👇
aHR0cHM6Ly9tLmRpYW5waW5nLmNvbS9zaG9wbGlzdC8xL3NlYXJjaD9mcm9tPW1fc2VhcmNoJmtleXdvcmQ9JUU5JUJCJTkxJUU2JTlBJTk3JUU2JTk2JTk5JUU3JTkwJTg2


提示:以下是本篇文章正文内容,下面案例可供参考

一、先分析下接口参数

1.先来看下加密的isoapi/module路由接口,其中的mtgsig就是加密的字段了,a1、a2明文其它未知,d1长得挺像md5的

 2.然后提交的表单呢也有个_token的加密字段,怎么说呢,总体看着有点像base64的编码,好了,接下来就可以开始我们的逆向分析了

二、开导mtgsig

1.找加密入口

先看下堆栈,搞过来网站有了一点的经验一般入口都是在anonymous中,多看几个就知道是哪里了,第一个anonymous是混淆的直接就生成了mtgsig,其它的呢看着也不太像先看下tryCatch

进来呢就是异步操作,进入看下它执行的异步函数内部是什么鬼玩意

 

 先大概大胆的猜测一下这个switch干了什么鬼操作,case 24 这个跳转应该就是变量的初始化定义了,case 13 就是堆加密的内容赋值了,其它跳转肯定就是加密入口或者是其它七七八八的小操作

 

 通过漫长的单步跟,来到case 47处,这里可以看见它将一些请求头、参数、请求方法等初始化好了,传入了一个叫 h2 的函数中,这个函数想必就是加密入口了,ojbk进入看看

进来又是异步操作,跟我搁这套娃呢???,大致看下它干了啥,看着一个像是get与post的判断,又或者是版本的判断,这玩意不管,扣加密就对了,调用gW可以看到mtgsig加密结果出来了,肝它

 

 

2.扣算法

大概的解读一下hr ? g4 : g5之前的操作干了什么,已知 hq、hr明文,hI是URL的路由参数并进行了b(1143)·sort·自定义排序函数,全扣也好还原也罢,这么快怎么来吧这里没啥难度

 然后看下g4了,这个g4呢其实也不难,它目前好像还不校验这个参数,全局查找一下g4,欸可疑的地方不就来了吗,断点上看看什么鬼玩意

 步入看下,好像把一些浏览器环境啥的给加密了,cw就是编码转换没啥东西,主要还是看看dd干啥了

 一进去就看见欸,AES?那没事了,经过后期的测试也发现这个值应该没有检测那就用AES模仿一下就好了,跳过它

'h1.3' + CryptoJS.AES.encrypt(timer.toString(), CryptoJS.enc.Utf8.parse('z7Jut6Ywr2Pe5Nhx'), {
        'iv': CryptoJS.enc.Utf8.parse('0807060504030201'),
        'mode': CryptoJS.mode.CBC,
        'padding': CryptoJS.pad.Pkcs7
    }).toString(CryptoJS.enc.Base)

好了恶心的东西它来了,switch循环语句,仿佛看见太奶在向我招手,四五百行代码,不过淡定不慌量大而已小问题😓,到这里某些人可能就不会扣了,当然你也可以补环境,这里就不展示补环境的操作了,单扣算法,还原呢?你都单扣出来了还原python算法还难吗?

 如果经验不足可能就有些棘手,不过问题不大,慢慢来总会有导出来的一天,这里呢就不展示怎么扣了,大概说下重点,就自己慢慢单扣了,这循环中主要是在于其中的两个call,这两个是重中之重,断上点多调试几次你就找到其中奥妙了

 像这些push了函数入参的你就要注意了,这些都是加密要用的转码操作,可千万不要遗漏掉了,不然加密可就对不上了

 

 像这些带有运算的也记得插上装,免得遗漏了算法运算的内容,小提示:d1的后半部分就靠这些运算得出的,最好都打上日志

 最后呢,你的每一步运算结果都必须对得上scope中的参数值,不然有些小伙伴就找不到北了,哟呵为什么我加密不能用😀

3.验证算法

阿巴阿巴,莫名其妙的就扣完了,欸呀呀完事

 最后验证一下结果能不能用吧,OJBK,结果当然是能用的啦


总结

好了到此文章就结束了,还有一件事,d1后半部分是运算过的注意了, WEBDFPID的生成很简单,至于_token嘛,置空都可以暂时没用上就没写上面了,WEBDFPID的话呢也是随机数所以啊,固定就行了,反正后端应该没有检测置空都可以,也有可能是蜜罐让你进去在封IP至于属于哪一种自己测试咯,拜拜~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

不懂这个118358-80-8甘露糖丝氨酸?看看Fmoc-Ser(Ac4Manα)-OH的全面解析吧!

Fmoc-Ser(Ac4Manα)-OH,甘露糖丝氨酸Product structure: Product specifications: 1.CAS No:118358-80-8 2.Molecular formula:C32H35NO14 3.Molecular weight:657.63 4.Packaging specification&#xff1…

浅谈响应式网页设计 —— 测试该知道的二三事

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

【LeetCode】每日一题 -- 1240. 铺瓷砖 -- Java Version

题目链接:https://leetcode.cn/problems/tiling-a-rectangle-with-the-fewest-squares/ 1. 题解(1240. 铺瓷砖) 23.05.31 华为机试第二题 1.1 暴力深搜 – DFS NP-Complete 问题 题解参考:Java DFS暴力递归(详细注释&…

LeetCode 2352. Equal Row and Column Pairs【模拟,哈希表,前缀树】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

100G QSFP28光模块类型和使用场景

100G QSFP28光模块是当前数据中心和通信网络中广泛应用的高速光模块之一。本文将详细介绍100G QSFP28光模块的类型、应用场景以及市场发展前景,并引用相关产品参数和行业统计数据,为读者提供全面的了解。 一、100G QSFP28光模块类型 100G QSFP28光模块…

开源 API 网关的访问策略(一)

许多企业和组织面临着网关访问控制的挑战,因为传统的访问控制方法往往过于笨重和繁琐。这些方法可能涉及复杂的规则集、繁琐的手动配置过程、缺乏灵活性和可扩展性等问题。此外,随着云计算和移动设备的广泛应用,访问控制的复杂性和挑战程度也…

stable-diffusion-webui 安装采坑日记

这里写自定义目录标题 安装容易采坑的点效果测试 安装容易采坑的点 1、不愿安装大佬的整合包。在自己时间足够多的情况下,可以尝试自己搭环境。但是自己安装的时间成本真的非常高,环境配置报错会让人陷入崩溃,如果没有代码排错能力&#xff…

sw2urdf导出的urdf文件中的惯性参数(inertial)错误的问题

现象描述 有时候,当我们使用solidworks建好我们的模型,然后利用【sw2urdf】导出后,发现其中的惯性参数,似乎不正确,ixx、izz这些参数都是很接近0的: 资料查找 其实这个不是我们设置的问题,而…

蓝牙耳机什么牌子好?无线蓝牙耳机品牌推荐

相信很多人都有过这样的经历,早晚高峰像沙丁鱼般被挤在公交或地铁上,嘈杂的环境、工作的劳累让你只想听听音乐追追剧,给自己一些放松的时光。可拿出有线耳机却常常被挤掉,更有被扯到耳朵的时候。想换一款蓝牙耳机,但面…

做连接中国企业出海的全球技术桥梁,亚马逊云科技出海日盛夏盛启

出海路漫漫,企业开拓全球市场而孤军奋战,常常会感到力不从心。好的产品有了,渠道有了,供应链有了,还要自己从0-1搭建存储、网络和架构?营销季来了想趁机冲一波销量,还要自己运维本地IDC、大促来…

docker-compose 部署zookeeper集群 —— 筑梦之路

1. zookeeper介绍 Zookeeper是一个开源的分布式协调服务中间件,它提供了一种分布式数据管理服务,能够实现分布式锁、命名服务、配置管理、集群管理等功能,从而帮助用户构建高可用、高性能的分布式系统。以下是Zookeeper的一些主要特点和功能&…

Java注解的入门学习

一、概念 Java注解是一种元数据形式,可以被添加到Java代码中的各种元素(类、方法、字段等)上,以提供关于这些元素的额外信息。注解是在Java 5中引入的一项特性,它们不直接影响代码的执行,而是提供了一种机…

顺序表算法练习

一.顺序表基础算法 1.说明 博主这里是算法练习,帅气的读者来这里默认已经知道了它,这里主要是针对408考研真题中关于线性表的算法题进行编写。第一部分是根据课本编写线性表的基本函数,剩下四个部分是针对考研真题的算法练习。 2.C语言代码…

ChatGLM的模型架构

ChatGLM的部署微调等,很多资料,不再赘述。 P-tuning V2 以P-Turing V2为例,介绍ChatGLM的网络结构。P-tuning V2方法训练时冻结模型的全部参数,只激活prefix_encoder的参数。 1、prefix encoder 初始化pre_len,代表…

Apple pencil平替哪款好?平价电容笔测评

现今,使用电容笔的人越来越多,各大品牌厂商对电容笔各种性能的设计也愈发用心。那么,电容笔哪个品牌好用呢?下面,我来给大家推荐几款质量好的Apple pencil平替,需要的小伙伴可以当个参考。 一、如何挑选到…

Vue3+TS+Vite开发组件库并发布到npm

Vue2开发插件并发布到npm 使用VitePress静态网站生成器创建组件库文档网站并部署到GitHub 目标:创建 vue-amazing-ui 组件库 ,并发布到npm 该组件库已发布到 npm,直接安装即可使用: pnpm i vue-amazing-ui #or yarn add vue-a…

(十一)K8S可视化工具Rancher学习、安装

1.Rancher背景概述 在过去几年中,容器技术如 Docker 和容器编排引擎如 Kubernetes 受到了广泛关注和采用,它们为应用程序的部署、可扩展性和管理带来了革命性的变化。 然而,随着容器技术的快速发展,容器集群的管理和操作变得越来…

【笔试强训选择题】Day21.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!! 文章目录 前言 一、…

hadoop搭建、mysql、hive部署

写在前面: 本篇文章基于linux系统Centos7环境下进行搭建、操作 仅作为学习参考借鉴,欢迎大家交流学习!一、 HDFS安装搭建 1.1 关闭虚拟机防火墙 在之后的学习、操作中,经常会遇到在宿主机中通过程序去访问虚拟机中的相关软件&am…

再获肯定!Coremail入选2023网络空间安全大会优秀案例!

6月2日-3日,在中国电子学会主办的“2023网络空间安全大会”上,由广东盈世计算机科技有限公司申报的“Coremail邮件安全解决方案”获评2023网络空间安全大会优秀案例,再次获得行业权威认可! 本次大会由中国电子学会主办&#xff0c…