小程序测试流程

article/2025/10/16 3:19:12

流程分为两个方面,解包可以挖掘信息泄露问题、隐藏的接口,抓包可以测试一些逻辑漏洞、API安全问题。两者结合起来就可以边调试边进行测试,更方便于安全测试。

搜索目标小程序

目标搜索不能仅仅局限于主体单位,支撑单位、供应商、全资子公司等都可能是入口点,所以小程序当然也不能放过它们。

小程序主体信息确认

查看小程序账号主体信息,否则打偏了花费了时间不说,还可能有法律风险。

点击小程序,

点更多资料就能看到小程序相关信息。

小程序包获取

PC端

首先在微信中搜索到小程序,并打开简单浏览。

然后在自己微信文件保存路径下找到applet下找到该小程序包,可以通过时间或者小程序的appid快速定位到目标包。

微信电脑端小程序包存在加密,需要使用工具进行解密。

下载地址:微信后台 回复口令领取。

windows端获取小程序包流程

打开解密工具,在工具目录建立wxpack文件夹(解密后的小程序包会放在这个地方),运行工具解密需要操作的小程序包即可。

移动端

找到对应目录,把包拉出来即可。

安卓保存路径:/data/data/com.tencent.mm/MicroMsg/{⽤户ID}/appbrand/pkg/

iOS保存路径:/var/mobile/Containers/Data/Application/{程序 UUID}/Library/WechatPrivate/{⽤户ID}/WeApp/LocalCache/release/{⼩程序ID}/ )

由于安卓data目录需要root权限访问,所以需要手机或模拟器root。

android模拟器获取小程序包流程,

这里我用到的是夜神模拟器,登录微信,找到小程序。

方法是将复制的内容放到mnt->shared->orther下,就会自动同步到PC端,这是模拟器的共享目录。

解包

工具地址:https://github.com/xuedingmiaojun/wxappUnpacker

环境安装

npm install uglify-es --save
npm install esprima --save
npm install css-tree --save
npm install cssbeautify --save
npm install vm2 --save
npm install js-beautify --save
npm install escodegen --save
npm install cheerio --save

执行node wuWxapkg.js xxxxxx.wxapkg

不出意外应该没啥问题,但意外往往很多。node版本问题,依赖问题等等都有可能导致解包失败,这个时候就希望懂nodejs的同学深入了解小程序的打包压缩逻辑,然后动手二开项目。不懂的又没打算往这方面深入研究的怎么办呢,那换一个目标呗。

调试

打开微信开发者工具,选择导入项目。

导入项目后可能会出现一些代码错误,需要自己手动修改,没有错误后可以编译,之后愉快的进行调试了。

记得在“本地设置”模块,勾选上“不校验合法域名”功能。

有些小程序包含第三方插件,而⼩程序插件直接在微信客户端内是⽆法搜索得到的,但我们可以通过登录⾃⼰的⼩程序微信开放平台账 户在“设置” --> “第三⽅设置” --> “添加插件”中搜寻⼩程序插件。

抓包

简单来讲就是配置全局代理,让微信走全局代理。首先打开抓包工具,配置好代理,然后修改windows代理配置。

就可以抓包分析了。

本文作者:雷石安全实验室


http://chatgpt.dhexx.cn/article/C9HvoVPX.shtml

相关文章

【软件测试】

系列文章目录 文章目录 系列文章目录前言第四章 单元测试4.1 软件测试过程概述4.2 什么是单元测试4.2.1 单元测试的定义4.2.2 单元测试的重要性4.2.3 单元测试原则 4.3 单元测试的目标和任务4.3.1 单元测试的目标:单元模块被正确编码4.3.2 单元测试的主要任务 4.4 单…

软件测试之测试程序开发

软件测试培训之测试程序开发 脚本维护,测试数据准备,测试监控准备; 测试程序开发 性能测试场景设计和性能测试脚本设计中需要注意以下几个问题: 场景真实性: 每个脚本的具体操作步骤,是和真实环境操作类似的,每个场景内的测试程序之间的逻辑关系,压力比重…

程序员的测试课

git项目地址:GitHub - dreamhead/geektime-todo: Geektime Todo is a demo todo project for Geektime column. 1、实现一个Todo应用 设计规范 1、对于输入参数的检测,由入口部分代码进行处理。如空字符串。 2、Repository 的问题以运行时异常 的形式抛…

软件测试重点知识

软件测试的定义: 利用人工或自动化的手段来运行或测定某个系统,其目的在于测它是否满足规定的需求或检测预期结果与实际结果之间的差异。 软件测试的目的: 发现软件中存在的问题或缺陷,检查软件系统是否满足要求。 软件测试的对象…

跑批利器--读取文件

在上篇文章中已经对示例的基本业务和流程进行了解,同时也知道了SpringBatch的三个接口ItemReader,ItemProcessor,ItemWriter.接下来我们主要是通过示例来具体处理一个文本文件,将里面的数据和内容通过SpringBatch的加工处理来存到新的数据库中. SpringBatch提供专门的类去读取文…

金融任务实例实时、离线跑批,Apache DolphinScheduler 在新网银行的三大应用场景与五大优化...

在新网银行,每天都有大量的任务实例产生,其中实时任务占据多数。为了更好地处理任务实例,新网银行在综合考虑之后,选择使用 Apache DolphinScheduler 来完成这项挑战。如今,新网银行多个项目已经完成了实时与准实时的跑…

线程并发处理跑批任务

定时任务类代码: package com.jzfq.rms.autoApprove.job;import com.alibaba.fastjson.JSONObject; import com.jzfq.rms.autoApprove.bean.InnerRuleProcess; import com.jzfq.rms.autoApprove.bean.InnerRuleProcessQueryBean; import com.jzfq.rms.autoApprove.s…

Oracle-job跑批变慢案例

前言: 近期处理了一起应用job跑批变慢的案例,在一天job执行时间突然增加了几十倍,后面通过分析是由于索引的设计不合理导致执行计划的异常,把当时的问题分析过程记录下来,分享给大家。 问题: 数据库job存储执行时间增加几十倍 原因…

架构师自诉:如何做到百万数据半小时跑批结束

业务背景 跑批通常指代的是我们应用程序针对某一批数据进行特定的处理 在金融业务中一般跑批的场景有分户日结、账务计提、欠款批扣、不良资产处理等等 具体举一个例子 🌰 客户在我司进行借款,并约定每月 10 号码还款,在客户自主授权银行…

基于Kettle跑批的案例说明

需求概述 通过动态配置表的方式完成在kettle里动态配置参数,并调用ktr,实现跑批的目的。 问题分析 定义一个ktr读取配置表的信息并将拷贝记录到结果定义一个ktr从结果里获取记录并设置变量定义业务ktr(即按照业务需要开发的…

学习笔记-如何设计离线跑批系统

一、基本概念 离线跑批:通常指批量加工数据、完成一系列流程的定时任务。 业务场景:在银行、金融、支付出现较多,其他行业也可能涉及。 1. 定时的数据状态更新(到期失效) 2. 数据计算(计算罚息、计提&…

跑批利器--示例

接下来我们将通过简单的一个在线商店的应用示例来展示如何使用SpringBatch.通过这个示例我们可以进一步去理解SpringBatch批量处理程序它是如何实现高效的读写数据,何时去使用内部组件,如何实现你自己的组件,以及如何配置一个批量任务在Spring容器中. 这里我们简单描述一下业务…

如何设计一个多线程处理跑批功能

一、背景 最近承接了一个需求,背景是用户当天可以参与比赛竞猜,当天20点前参与竞猜,第二天上午10点出结果。系统的实现思路是用户参与竞猜时增加竞猜记录,第二天早上9点开始进行跑批,跑批依赖业务的配置,要…

跑批利器--批处理应用程序

目前笔者正在进行直销银行互联网核心的设计和研发,在银行相关系统中有一块内容比较关键,那就是跑批.因此接触到了SpringBatch的相关内容,作为学习和记录,有必要将SpringBatch的相关技术点和实际项目中遇到的问题记录下来,同时也跟各位来进行分享和学习. 首先先了解一下什么是批…

跑批 流程、代码梳理

权限系统 全部——ETL服务——计划维护 日程表:到时间触发跑批任务 复制任务编号 ETL设计——作业设计——自定义java——插入语句 找到类所在位置 org.isscloud.portal.agent.scf.batch.FinaResultBatch base下的agent下的scf.batch包下的FinaResultBatch类 S…

跑批为什么这么难

文章目录 问题分析SPL用于跑批应用效果SPL资料 业务系统产生的明细数据通常要经过加工处理,按照一定逻辑计算成需要的结果,用以支持企业的经营活动。这类数据加工任务一般会有很多个,需要批量完成计算,在银行和保险行业常常被称为…

Java开源专业计算引擎:跑批真的这么难吗?

业务系统产生的明细数据通常要经过加工处理,按照一定逻辑计算成需要的结果,用以支持企业的经营活动。这类数据加工任务一般会有很多个,需要批量完成计算,在银行和保险行业常常被称为跑批,其它像石油、电力等行业也经常…

银行跑批业务 的 初步理解(批量批量.....流水账)

一、初步理解 白天的柜台交易, 实时的 对帐户进行操作。 晚上 批量 , 比如 一些报表的生成 , 定期储蓄到期的自动转存 , 行内行外业务清分清算 , 有时还可能赶上利息计算....... 当然 不是所有的数据都是实时操作 , 因此跑批就是为此诞生。 二、逐渐深入 批量…

跑批设计-如何才能让跑批更加高速

跑批的应用场景 在开发过程中跑批经常使用的地方: 消息类:到期失效以及到期批量通知客户计算类:在财务中的罚息、计提、计息文件类:对账信息、还款信息同步以及报表生成 跑批数据特点 数据量非常大实时性并不是特别高&#xf…

跑批bat、shell

“跑批”也叫“批量处理”。批处理,也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件的扩展名为bat 。 批处理定义:顾名思义&a…