第19天:信息打点-小程序应用解包反编译动态调试抓包静态分析源码架构

第十九天

Untitled

本课意义

1.如何获取到目标小程序信息
2.如何从小程序中提取资产信息

一、Web&备案信息&单位名称中发现小程序

1.国内主流小程序平台

  1. 微信

  2. 百度

  3. 支付宝

  4. 抖音头条


2.小程序结构

1.主体结构

小程序包含一个描述整体程序的app和多个描述各自页面的page

一个小程序主体部分(即APP)由三个文件组成,必须放在项目的根目录,如下:

文件必需作用
app.js小程序逻辑
app.json小程序公共配置
app.wxss小程序公共样式表
2.一个小程序页面由四个文件组成,分别是:
xxx.js页面逻辑
xxx.json页面配置
xxx.wxml页面结构
xxx.wxss页面样式
3.项目整体目录结构
pages页面文件夹
index首页
logs日志
utils
util工具类(mina框架自动生成,你也可以建立一个:api)
app.js入口js(类似于java类中的main方法)、全局js
app.json全局配置文件
app.wxss全局样式文件
project.config.json跟你在详情中勾选的配置一样
sitemap.json用来配置小程序及其页面是否允许被微信索引

3.小程序体验-凡科建站&模版测试上线

1.搭建小程序

测试:https://qz.fkw.com/

参考:https://blog.csdn.net/qq_52445443/article/details/122351865

2.小程序源码反编译

参考官方文档安装环境

复杂操作:https://www.cnblogs.com/oodcloud/p/16964878.html

简单工具:http://xcx.siqingw.top/

3.微信官方开发工具

https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html

二、小程序资产静态提取&动态抓包&动态调试

小程序逆向-解包反编译&动态调试&架构

信息收集

  1. 小程序抓包-Proxifier&BurpSuite联动
  2. 对抓到的IP或域名进行Web安全测试
  3. 对抓到的IP或域名进行API安全测试
  4. 对抓到的IP或域名进行端口服务测试

寻找漏洞

  1. 对源码架构进行分析

  2. 更多的资产信息

  3. 敏感的配置信息

  4. 未授权访问测试

  5. 源码中的安全问题


三、环境复现

1.小程序获取-各大平台&关键字搜索

各大平台直接搜索

2.小程序体验-凡科建站&模版测试上线

1.打开凡科建站

image-20240326224940535

2.选择模板后点击预览

image-20240326225118310

3.点击前往授权,选择授权的小程序平台

image-20240326225248452

4.因为没有资质和注册,点击快速创建试用小程序进行测试就行

image-20240326225319064

5.点击绑定体验者后输入体验者的微信号

image-20240326225444305

6.去微信打开查看搭建的小程序的效果

image-20240326225947277


3.小程序抓包-Proxifier&BurpSuite联动

1.打开Burp设置好代理,打开proxifier设置好代理服务器和代理规则,规则要指向微信的exe程序位置

Untitled

2.设置好之后打开小程序进行抓包

Untitled


4.程序逆向-解包反编译&动态调试&架构

1.第一个小程序(需要购买)

1.打开小程序助手,点击解包文件

2.打开小程序安装目录,在微信文件存储位置文件下的Applet,为了更好判断,删除多余无用的小程序缓存

3.选择一个小程序运行,运行完后会在Applet目录下产生一个新的文件夹

4.回到小程序助手打开小程序所在的目录,如果有多个wxapkg文件就多选进行打开,保证APP的那个在第一个

5.显示解包成功之后点击刷新反编译包,选中刚刚选择的解包的文件

6.然后根据小程序界面的美观程度选择新旧版反编译

7.点击反编译之后会生成一个文件夹,反编译的源码就在这个文件夹下

8.打开微信开发者工具,打开刚刚反编译后的源码

9.点击右上角的详情,点击本地设置,取消勾选将JS编译成ES5

10.点击可视化,对预览界面进行点击查看调试器的信息

11.选择pages文件夹后点击list目录下的list.wxml查看预览页面变化,然后逐一点开各个文件夹下的.wxml进行查看

12.再打开Burp进行抓包,根据显示的URL进入微信开发者工具index文件夹下的JS文件进行搜索查找

13.再进行查找,在wxml文件中可能泄露图标所在的URL

2.第二个小程序

1.寻找其他小程序进行测试

2.遍历目录查看预览界面样式,寻找有没有存在未授权访问

3.搜索源码中的敏感字段,例如accesskey,看是否存在OSS资源信息

4.打开小程序助手,点击抓取素材工具,运行图片抓取,可以搜集一些域名信息

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

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

相关文章

goland2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 Goland 是一款由 JetBrains 公司开发的集成开发环境(IDE),专门用于 Go 语言的开发。它提供了丰富的功能和工具,帮助开发者更高效地编写、调试和管理 Go 语言项目。 功能特点&#x…

Milvus 老友汇|RAG 场景、电商平台、AI 平台……如何用向量数据库构建业务方案?

近日,Milvus 老友汇Arch Meetup 在深圳圆满落幕。本次 Meetup 由 Milvus 社区携手 Shopee 共同举办,同时还邀请到来自 AWS、点石科技的技术专家,分享电商行业、RAG 场景、AI 平台等如何基于向量数据库构建业务方案。 以下是本次 Meetup 的重点…

OSPF---综合实验

1、R4为ISP,其上只配置IP地址;R4与其他所直连设备间均使用公有IP; 2、R3-R5、R6、R7为MGRE环境,R3为中心站点; 3、整个OSPF环境IP基于172.16.0.0/16划分;除了R12有两个环回,其他路由器均有一个环…

Qt 实战(1)Qt 概述

一、Qt概述 1、什么是Qt? Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,也可以开发不带界面的…

HTML 入门

HTML 简介 1. 什么是 HTML? 全称:HyperText Markup Language(超文本标记语言)。 超文本:暂且简单理解为 “超级的文本”,和普通文本比,内容更丰富。 标 记:文本要变成超文本&…

java面试之线程八锁

所谓的“线程八锁”,其实就是考察 synchronized 锁住的是哪个对象 情况1:12 或 21情况2:1s后12,或 2 1s后 1情况3:3 1s 12 或 23 1s 1 或 32 1s 1情况4:2 1s 后 1情况5:2 1s 后 1情况6&#xff…

PLC扩展更自由,钡铼IOy系列模块实现DI/DO/AI/AO任意组合

随着工业自动化的不断发展,PLC(可编程逻辑控制器)作为工业控制领域的核心设备,扮演着至关重要的角色。而钡铼IOy系列模块作为PLC的重要扩展设备,不仅实现了DI(数字输入)、DO(数字输出…

nodejs读取并计算指定文件的MD5哈希值

读取并计算指定文件的MD5哈希值 /*** 读取并计算指定文件的MD5哈希值* param {string} file - 文件路径* returns {void} 不返回任何值,但会打印出文件的MD5哈希值*/ const fs require(fs); // 引入文件系统模块 const crypto require(crypto); // 引入加密模块 …

Scala之List

列表 不可变列表(List) 在Scala中,通过List来定义不可变列表,需要注意的是,List本身是一个抽象类,所以并不能直接使用List来构建对象,需要使用它的伴生对象来构建 package com.fesco.listimport scala.::object ListD…

代码随想录训练营第三十五期|第天16|二叉树part03|104.二叉树的最大深度 ● 111.二叉树的最小深度● 222.完全二叉树的节点个数

104. 二叉树的最大深度 - 力扣(LeetCode) 递归,可以前序遍历,也可以后序遍历 前序遍历是backtracking 下面是后序遍历的代码: /*** Definition for a binary tree node.* public class TreeNode {* int val;* …

TOP100 二分法

写在前面:二分法用在有序序列上 1.35. 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示…

Ubuntu20从0开始选择合适版本手动安装cuda,torch-geometric,jax

一个全新的ubuntu20台式机,在Additional Drivers安装nvidia-470-server(一开始安装450,cunda版本只能到11.0,torch有些库用不了,可以直接切换点击Apply Changes重启就行) nvidia-smi查看CUDA Version可到…

全球最新国内外18个热门风景视频素材网站推荐

寻找最新的高清风景视频素材?这里有国内外共18个热门网站,精心整理供您选择。 国内资源: 蛙学网:免费提供多种无版权视频素材,资源丰富。新GG网:需QQ登录,提供丰富的视频模板,通过…

【数据库】MVCC

MVCC是一种用来解决读写冲突的无锁并发控制,也就是为事务分配单项增长的时间戳,为每个修改保存一个版本,版本与事务时间戳关联,读操作只读该事务开始前的数据库的快照 MVCC,全称Multi-Version Concurrency Control&am…

vue快速入门(十七)v-model数据双向绑定修饰符

注释很详细&#xff0c;直接上代码 上一篇 新增内容 v-model.trim 自动去除首尾空格v-model.number 自动转换成数字类型 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" con…

kubelet的作用

1、节点管理 定时向api server汇报本节点的信息状态&#xff0c;资源使用状态&#xff0c; 2、pod管理 负责维护节点pod的生命周期&#xff0c;创建、更新、删除容器 3、容器健康检查 kubelet会定期调用容器中的探针来检测容器是否存活、就绪&#xff0c;来进行对应的操作…

基于ADB的Scrcpy实现电脑控制手机

Scrcpy是一个开源的&#xff0c;基于ADB&#xff08;Android 调试桥&#xff09;的手机到电脑上的投屏操控的实现&#xff0c;本文将介绍如何搭建开发环境&#xff0c;使得在Windows系统中去控制投屏的安卓手机。 1. 安装投屏软件 下载Scrcpy软件到电脑上&#xff0c;该软件中…

贪心算法--购买股票

给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买&#xff0c;然后在 同一天 出售。 返回 你能获得的 最大 利润 。 示例 1&a…

YoloV9实战:从Labelme到训练、验证、测试、模块解析

模型实战 训练COCO数据集 本次使用2017版本的COCO数据集作为例子&#xff0c;演示如何使用YoloV8训练和预测。 下载数据集 Images: 2017 Train images [118K/18GB] &#xff1a;http://images.cocodataset.org/zips/train2017.zip2017 Val images [5K/1GB]&#xff1a;htt…

【电控笔记2.2】电流回路+延迟效应

延迟效应的来源以及影响 数字控制系统的delay: 5.4节有介绍T0=0.5TS 低通滤波器的时间常数? 滤波器的传递函数与性能参数