记一次微信小游戏渗透测试

本文转载于:https://www.freebuf.com/vuls/371936.html

准备工作

因为目标站点只能用微信打开,微信又不能调试看代码。这里推荐可以使用pc端旧版微信3.2.1,具体方法放链接里:

https://blog.csdn.net/qq_45863248/article/details/127688137

需要注意的是,如果作者方法未生效,可以把pak文件放微信安装目录再重启试试。

看到Show DevTools就说明成功啦!

开始测试

首先看到微信小游戏先游戏流程先走一遍抓个包。在手机微信上点击开始游戏:

1689216059_64af643bb24a47d6a584d.png!small?1689216060822

把上面的图形对应滑到下面的棒冰上制作成功棒冰+1

1689218943_64af6f7fb7e59d6bb14ac.png!small?1689218944809

每制作一根棒冰发送一个包(我这里制作了两个):

1689215942_64af63c672f38c2ec34f8.jpg!small?1689215942794

1689216184_64af64b8afa3619675eba.png!small?1689216185183

页面倒计时结束后,变量boxNum统计制作了多少根棒冰,然后发送

1689216208_64af64d02fbf2d60436b3.png!small?1689216208469

这里我们看到boxNum参数是加密了的,有理由怀疑最终制作个数就是由boxNum来控制的

打开pc端旧版微信调试工具,全局搜索,发现并未找到这个变量1689215817_64af6349106457fb5c80e.png!small?1689215818443

懵了,我还以为出了什么问题,反复找了半天,发现也并没有游戏相关的js。在旧版pc端微信点开始游戏抓包,终于是发现了game.js,全局搜索boxNum,居然在这里。与之前不同的是,它不会一次性加载显示所有js,游戏开始后才加载的。

1689217218_64af68c25cfb394dde921.png!small?1689217219427


分析加密逻辑,直接找f函数,搜索function f:

1689218316_64af6d0c00919925f7b6a.png!small?1689218316379

发现是AES加密,自定义了icon1,icon2两个未知变量,需要加密就必须知道这两个变量,同样,在这个game.js和之前的js里均未搜到这两个变量。于是游戏里继续抓包,发现rem.js,看到icon1、icon2均是固定的。

1689218413_64af6d6de0c652a56cd7a.png!small?1689218414274

这下好办了,直接本地环境搭起来,先试试开头的我制作的棒冰数量2加密与数据包对比一下。

1689218675_64af6e73c88810b4bf3b8.png!small?1689218676689

1689218627_64af6e43e4d24c52fab3d.png!small?1689218628235

完全一样!测试结束。

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

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

相关文章

Springboot 封装整活 Mybatis 动态查询条件SQL自动组装拼接

前言 ps:最近在参与3100保卫战,战况很激烈,刚刚打完仗,来更新一下之前写了一半的博客。 该篇针对日常写查询的时候,那些动态条件sql 做个简单的封装,自动生成(抛砖引玉,搞个小玩具&a…

【Linux操作系统】深入探索Linux进程:创建、共享与管理

进程的创建是Linux系统编程中的重要概念之一。在本节中,我们将介绍进程的创建、获取进程ID和父进程ID、进程共享、exec函数族、wait和waitpid等相关内容。 文章目录 1. 进程的创建1.1 函数原型和返回值1.2 函数示例 2. 获取进程ID和父进程ID2.1 函数原型和返回值2.…

接口测试及接口抓包常用测试工具和方法?

作为测试领域中不可或缺的一环,接口测试和抓包技术在软件开发过程中扮演着至关重要的角色。不论你是新手还是有一些经验的小伙伴,本篇文章都会为你详细介绍接口测试的基本概念、常用测试工具和实际操作技巧,让你轻松掌握这一技能。 接口测试…

Java数字化智慧工地管理云平台源码(人工智能、物联网、大数据)

智慧工地优势:"智慧工地”将施工企业现场视频管理、建筑起重机械安全监控、现场从业人员管理、物料管理、进度管理、扬尘噪声监测等现场设备有机、高效、科学、规范的结合起来真正实现工程项目业务流与现场各类监控源数据流的有效结合与深度配合,实…

【JVM】对String::intern()方法深入详解(JDK7及以上)

文章目录 1、什么是intern?2、经典例题解释例1例2例3 1、什么是intern? String::intern()是一个本地方法,它的作用是如果字符串常量池中已经包含一个等于此String对象的字符串,则返回代表池中这个字符串的String对象的引用&#…

Java开源项目mall学习笔记(1)——项目初始化

一、学习声明与项目介绍 该笔记是记录学习开源项目mall过程的文档笔记,完全原创,转载请声明。同时也对开源项目的作者表示感谢! mall: 🔥 mall项目是一套基于 SpringBoot Vue uni-app 实现的电商系统,包括前台商城项…

ArcGIS 利用cartogram插件制作变形地图

成果图 注:本图数据并不完全对,只做为测试用例 操作 首先需要下载一个插件cartogram 下载地址在这里 https://www.arcgis.com/home/item.html?idd348614c97264ae19b0311019a5f2276 下载完毕之后解压将Cartograms\HelpFiles下的所有文件复制到ArcGIS…

【Git】(二)分支

1、创建分支 已存在主分支master,现在需要创建v1.0的版本,一般直接在web页面操作。 v1.0分支,基线master,称为项目分支。 假如,v1.0项目存在两个项目成员sunriver2000和snow,一般还会再针对个人创建个人…

nodejs+vue+elementui学生档案信息管理系统_06bg9

利用计算机网络的便利,开发一套基于nodejs的大学生信息管理系统,将会给人们的生活带来更多的便利,而且在经济效益上,也会有很大的便利!这可以节省大量的时间和金钱。学生信息管理系统是学校不可缺少的一个环节,其内容直…

说一下什么是tcp的2MSL,为什么客户端在 TIME-WAIT 状态必须等待 2MSL 的时间?

1.TCP之2MSL 1.1 MSL MSL:Maximum Segment Lifetime报文段最大生存时间,它是任何报文段被丢弃前在网络内的最长时间 1.2为什么存在MSL TCP报文段以IP数据报在网络内传输,而IP数据报则有限制其生存时间的TTL字段,并且TTL的限制是基于跳数 1.3…

[高光谱]PyTorch使用CNN对高光谱图像进行分类

项目原地址: Hyperspectral-Classificationhttps://github.com/eecn/Hyperspectral-ClassificationDataLoader讲解: [高光谱]使用PyTorch的dataloader加载高光谱数据https://blog.csdn.net/weixin_37878740/article/details/130929358 一、模型加载 在…

使用JMeter创建数据库测试

好吧!我一直觉得我不聪明,所以,我用最详细,最明了的方式来书写这个文章。我相信,我能明白的,你们一定能明白。 我的环境:MySQL:mysql-essential-5.1.51-win32 jdbc驱动:…

mysql 03.查询(重点)

先准备测试数据,代码如下: -- 创建数据库 DROP DATABASE IF EXISTS mydb; CREATE DATABASE mydb; USE mydb;-- 创建student表 CREATE TABLE student (sid CHAR(6),sname VARCHAR(50),age INT,gender VARCHAR(50) DEFAULT male );-- 向student表插入数据…

PHP 公交公司充电桩管理系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 公交公司充电桩管理系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 源码下载 https://download.csdn.net/download/qq_41221322/88220946 论文下…

苹果手机批量删除联系人的2个方法,请查收!

【想要清理通讯录里的“僵尸号”,但是突然发现手机不能批量删除。一个一个删除太麻烦了,有什么办法可以一次性多删几个人吗?】 小编想问问果粉们平时都是怎么删除联系人的?特别是要删除多个联系人的时候,大家还是选择…

matlab保存图片

仅作为记录,大佬请跳过。 文章目录 用界面中的“另存为”用saveas 用界面中的“另存为” 即可。 参考 感谢大佬博主文章:传送门 用saveas 必须在编辑器中的plot之后用saveas(也就是不能在命令行中单独使用——比如在编辑器中plot&#xf…

基于平台的城市排水泵站管理系统设计

安科瑞 耿敏花 近年来我国城市内涝灾害频发,造成人员伤亡以及经济损失严重,严重威胁着城市的安全。数据显示,2015-2018年我国平均每年受淹或发生内涝城市的数量约占我国城市数量的1/5;人民生命财产也损失严重,据统计&a…

基于YOLOv5n/s/m不同参数量级模型开发构建茶叶嫩芽检测识别模型,使用pruning剪枝技术来对模型进行轻量化处理,探索不同剪枝水平下模型性能影响【续】

这里主要是前一篇博文的后续内容,简单回顾一下:本文选取了n/s/m三款不同量级的模型来依次构建训练模型,所有的参数保持同样的设置,之后探索在不同剪枝处理操作下的性能影响。 在上一篇博文中保持30的剪枝程度得到的效果还是比较理…

C++ 学习系列3 -- 函数压栈与出栈

在C中,函数压栈(函数调用)和出栈(函数返回)是函数调用过程中的两个关键步骤。下面将逐步解释这两个过程: 一 函数压栈与出栈过程简介 函数压栈(函数调用)的过程如下: …

2020年3月全国计算机等级考试真题(C语言二级)

2020年3月全国计算机等级考试真题(C语言二级) 第1题 有以下程序 void fun1 (char*p) { char*q; qp; while(*q!\0) { (*Q); q; } } main() { char a[]{"Program"},*p; p&a[3]; fun1(p); print…