第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.mfbz.cn/a/549357.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升

CodeGeeX在升级到第三代模型时,就引入了RAG检索增强生成的能力。即模型会根据检索到的相关背景知识生成回答,大幅减轻生成内容的幻觉性。在CodeGeeX插件中,是通过侧边栏对话框中输入“repo”触发 RAG 技术。用户可以对开源代码仓库进行提问&a…

HG泄露(ctfhub)

工具准备:dirsearch、dvcs-ripper 网络安全之渗透测试全套工具篇(内含安装以及使用方法)_dvcs-ripper-CSDN博客 dvcs-ripper:一款perl的版本控制软件信息泄露利用工具,支持bzr、cvs、git、hg、svn... tree //树状…

突破编程_前端_SVG(使用 svg-pan-zoom 库进行平移与缩放)

1 svg-pan-zoom 概述 svg-pan-zoom 是一个轻量级、高性能且易于使用的 JavaScript 库,专为增强 SVG 图像的浏览体验而设计。它提供了平移和缩放功能,使用户能够无缝探索大型或复杂的 SVG 图形。这个库允许用户对SVG图像进行交互操作,包括缩放…

App怎么创建百度百科词条

创建一个App的百度百科词条可以帮助提高App的知名度和权威性,以下是详细的创建步骤和注意事项: 创建步骤 注册百度账号:首先,你需要有一个百度账号,如果没有,你需要按照步骤申请一个,这一步骤是…

【ENSP】华为三层交换机配置AAA认证,开启telnet服务

配置步骤 1.给交换机配置ip地址,以便登陆 2.配置AAA,用户名,密码,服务类型,用户权限 3.配置接入设备的数量 4.开启telnet服务 LSW2交换机配置 u t m #关闭提示 sys …

[Linux]--关于进程控制

进程创建,fork/vfork 在linux中fork函数是非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 #include <unistd.h> pid_t fork(void); 返回值&#xff1a;自进程中返回0&#xff0c;父进程返回子进程id&#x…

网工内推 | 等保测评工程师,朝九晚六,周末双休,有相关认证优先

01 江苏国保测评中心 招聘岗位&#xff1a;等保测评工程师 职责描述&#xff1a; 1.测评类项目的物理安全测评、主机安全测评、数据安全测评、应用安全测评、风险评估、差距分析等并编制相关报告; 2.协助业务部门完成网络安全等级保护测评、信息安全咨询、信息安全风险评估等项…

第1章:自动驾驶车辆“规划”与“控制”的通用架构

1.1 自动驾驶的分级 2014年美国汽车工程师学会 (SAE) 定义了6个无人驾驶等级&#xff0c;从0级&#xff08;完全手动&#xff09;到5级&#xff08;完全自动&#xff09;&#xff0c;这些无人驾驶等级准则已经被美国交通部采纳&#xff1b;该标准也被称为SAE标准&#xff1b; …

数模转换(ADC)、IIC、2440内部IIC寄存器、主机发送、主机接收

我要成为嵌入式高手之4月15日ARM第八天&#xff01;&#xff01; ———————————————————————————— ADC 概念 ADC是模拟到数字转换器的缩写。是一种电子设备或者模块。用于将连续变化的模拟信号转换为离散的数字信号&#xff0c;以便数字系统能够对…

Open3D 体素滤波(30)

Open3D 体素滤波(30) 一、算法介绍二、算法实现1.代码2.效果一、算法介绍 体素滤波(Voxel Grid Filtering)是一种常用的点云滤波算法,用于对点云数据进行下采样(降低数据密度)以及去除噪声。该算法将点云数据划分为规则的体素网格,然后在每个体素中选择一个代表性点作为…

动态规划算法求解最长公共子序列

动态规划算法是运筹学中求解多阶段决策问题的经典算法&#xff0c;本文将介绍动态规划算法的基本思想&#xff0c;并介绍如何使用动态规划算法求解最长公共子序列问题。 1. 动态规划算法的基本思想 动态规划算法本质也是基于分治思想&#xff0c;将待求解问题分解成若干个子问…

掀起区块链开发狂潮!Scaffold-eth带你一键打造震撼DApp

文章目录 前言一、Scaffold-eth是什么&#xff1f;二、安装和配置1.准备工作2.安装3.配置开发环境 三、进阶使用1.放入自己的合约2.部署运行 总结 前言 前面的文章传送&#x1f6aa;&#xff1a;hardhat入门 与 hardhat进阶 在之前的文章中&#xff0c;我们已经探讨了使用Har…

c++-----继承

01&#xff1a;继承是什么 定义 继承 (inheritance) 机制是面向对象程序设计 使代码可以复用 的最重要的手段&#xff0c;它允许程序员在 保 持原有类特性的基础上进行扩展 &#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承 呈现了面向对象 程序设计…

【C语言】带你完全理解指针(六)指针笔试题

目录 1. 2. 3. 4. 5. 6. 7. 8. 1. int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } 【答案】 2&#xff0c;5 【解析】 定义了一个指向整数的指针ptr&#xff0c;并将其初始化为&…

FactoryMethod工厂方法模式详解

目录 模式定义实现方式简单工厂工厂方法主要优点 应用场景源码中的应用 模式定义 定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。 Factory Method 使得一个类的实例化延迟到子类。 实现方式 简单工厂 以下示例非设计模式&#xff0c;仅为编码的一种规…

在centos8.5上迁移深度学习环境的时候碰到的一下问题(需要运维人员解决的)

我负责的是将开发服务器上的深度学习环境进行打包并将该环境迁移到生产服务器上&#xff0c;这些操作可以在其他博客中搜到 本文主要介绍我把环境包上传至生产服务器中的anaconda/envs/路径下&#xff0c;解压之后&#xff0c;运行测试代码时遇到的问题 IT部门是如何处理的&am…

mfc 带有复选框的ListBox

mfc 带有复选框的 ListBox 效果&#xff1a; 添加 ListBox 控件 从工具箱拖拽 ListBox 控件到窗口上&#xff0c;并设置属性&#xff1a; 包含字符串&#xff1a;true所有者描述&#xff1a;Fixed 给ListBox添加控制变量 添加完后&#xff0c;将m_list_box的类型使用CC…

Rustdesk如何编译代码实现安装后,不会在右下角出现托盘图标

环境&#xff1a; Rustdesk1.1.9 问题描述&#xff1a; Rustdesk如何编译代码实现安装后&#xff0c;不会在右下角出现托盘图标 解决方案&#xff1a; 安装后只有自定义进程图标 详细方案&#xff0c;有需要私聊

L2-1 堆宝塔分数

本题链接&#xff1a;PTA | 程序设计类实验辅助教学平台 题目&#xff1a; 样例&#xff1a; 输入 11 10 8 9 5 12 11 4 3 1 9 15 输出 4 5 思路&#xff1a; 这是一道模拟题&#xff0c;需要有耐心读题&#xff0c;跟着题目走一遍&#xff0c;就可以了。 代码详解如下&…

中霖教育:没有计量相关工作经验可以考注册计量师吗?

不可以&#xff0c;报考注册计量师需要满足相关工作年限要求&#xff0c;如果没有相关工作经验是不能报考的。 具体要求如下&#xff1a; 一级计量师; 1.取得理学类或工学类专业大学专科学历&#xff0c;工作满6年&#xff0c;其中从事计量技术工作满4年; 2.取得理学类或工…