記一次微信小游戲滲透測試

本文轉載于: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.pswp.cn/news/41589.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41589.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41589.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Springboot 封裝整活 Mybatis 動態查詢條件SQL自動組裝拼接

前言 ps:最近在參與3100保衛戰,戰況很激烈,剛剛打完仗,來更新一下之前寫了一半的博客。 該篇針對日常寫查詢的時候,那些動態條件sql 做個簡單的封裝,自動生成(拋磚引玉,搞個小玩具&a…

chatgpt多個key循環使用解決token限速

itertools.cycle 是 Python 標準庫中的一個函數,它用于創建一個無限循環迭代器。它接受一個可迭代對象作為參數,并會不斷重復該可迭代對象的元素。 使用 itertools.cycle 可以方便地創建一個可以無限循環的迭代器。當你需要反復訪問一個可迭代對象的元素…

【Linux操作系統】深入探索Linux進程:創建、共享與管理

進程的創建是Linux系統編程中的重要概念之一。在本節中,我們將介紹進程的創建、獲取進程ID和父進程ID、進程共享、exec函數族、wait和waitpid等相關內容。 文章目錄 1. 進程的創建1.1 函數原型和返回值1.2 函數示例 2. 獲取進程ID和父進程ID2.1 函數原型和返回值2.…

接口測試及接口抓包常用測試工具和方法?

作為測試領域中不可或缺的一環,接口測試和抓包技術在軟件開發過程中扮演著至關重要的角色。不論你是新手還是有一些經驗的小伙伴,本篇文章都會為你詳細介紹接口測試的基本概念、常用測試工具和實際操作技巧,讓你輕松掌握這一技能。 接口測試…

Java數字化智慧工地管理云平臺源碼(人工智能、物聯網、大數據)

智慧工地優勢:"智慧工地”將施工企業現場視頻管理、建筑起重機械安全監控、現場從業人員管理、物料管理、進度管理、揚塵噪聲監測等現場設備有機、高效、科學、規范的結合起來真正實現工程項目業務流與現場各類監控源數據流的有效結合與深度配合,實…

在Hive/Spark上運行執行TPC-DS基準測試 (ORC和TEXT格式)

目前,在Hive/Spark上運行TPC-DS Benchmark主要是通過早期由Hortonworks維護的一個項目:hive-testbench 來完成的。本文我們以該項目為基礎介紹一下具體的操作步驟。不過,該項目僅支持生成ORC和TEXT格式的數據,如果需要Parquet格式,請參考此文《在Hive/Spark上執行TPC-DS基…

動態代理有幾種方式,可以借助Mybatis-plus里面的檢驗動態類

動態代理有很多的分類; 1、JDK原生的動態代理; 2、Spring實現的基于cglib里面的工廠實例化對象; 3、基于原生的cglib造出來的對象 4、基于字節碼的反編譯:assistant 具體的實現類參考: public final class ClassU…

【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 實現的電商系統,包括前臺商城項…

編譯鴻蒙codelabs安裝時報錯

學習鴻蒙ArkTS時編譯codelabs樣例代碼,發現編譯完成報錯。目前鴻蒙的資料比較少,且官方文檔路徑很深,遂記錄下來,以資來者。 error: failed to start ability. Error while Launching activity修改module.json5中的exported為tru…

ArcGIS 利用cartogram插件制作變形地圖

成果圖 注:本圖數據并不完全對,只做為測試用例 操作 首先需要下載一個插件cartogram 下載地址在這里 https://www.arcgis.com/home/item.html?idd348614c97264ae19b0311019a5f2276 下載完畢之后解壓將Cartograms\HelpFiles下的所有文件復制到ArcGIS…

ffmpeg的使用

1、ffmpeg的安裝 # 安裝wget yum -y install wget # 安裝ffmpeg壓縮包 wget --no-check-certificate https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.0.3-64bit-static.tar.xz # 解壓 tar -xJf ffmpeg-4.0.3-64bit-static.tar.xz # 進入目錄 cd ffmpeg-4.0.3-64…

【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個系統庫中實時查詢返回結果拼接優化思路

文章目錄 場景描述優化思路分享資源 場景描述 接口需要從系統1查詢數據,查出的每條數據需要從另一個系統2中再去查詢某些字段, 比如:從系統1中查出100條數據,每條數據需要去系統2中再去查詢出行數據,可能系統1一條數…