APP 与小程序的渗透:微信小程序与 APP 的区别解析

2024-07-26
来源:网络整理

APP及小程序渗透率 微信小​​程序与APP区别

(1)下载并安装

微信小程序:通过微信访问(扫描二维码、搜索、分享);

App:从应用商店(App、App 等)下载并安装;

(2)内存使用情况

微信小程序:无需安装,与微信共享内存,占用内存空间可以忽略不计;App:安装在手机内存中,一直占用内存。

存储空间,应用太多可能导致内存不足;

(3)手机适配

微信小程序:一次开发,适配多终端;

App:需要兼容各大手机,开发成本较高;

(4)产品发布

微信小程序:提交微信公众平台审核并推送至云端;

App:需要提交十几个应用商店审核,且每个应用商店要求的信息不一样,非常繁琐;

(5)功能差异

微信小程序:仅限于微信平台提供的功能;

App:充分利用硬件资源,可以做出功能、设计、效果、流畅度远超小程序的软件和服务。

服务;

(6)传输要求

微信小程序:必须使用,必须注册域名,不能直接使用IP地址。

App:根据开发者需求可选传输;

(7)开发背景

微信小程序:适合初创团队,试错成本低,所需时间和资金投入较少;

App:适合大型、成熟的商业公司以及对自身品牌要求较高的企业。

APP渗透率

应用程序是开发应用程序时创建的数据和资源文件的存档文件。应用程序的扩展名是 .apk,即应用程序包,大多数情况下包括以下文件和文件夹:

为了验证这一点,我们可以简单地使用任何存档管理器应用程序,例如 7zip,或任何首选应用程序

解压该应用程序。在 或 Mac 上,我们可以简单地使用命令来显示存档的内容,如下面的屏幕截图所示:

应用程序由各种组件组成,这些组件共同构成一个可运行的应用程序。这些组件包括活动、服务、广播接收器、内容提供程序和共享首选项。在继续之前,让我们快速了解一下这些不同的组件。

现在我们知道了应用程序的内部结构以及应用程序的组成方式,我们可以继续对应用程序进行逆向工程。当我们只有 .apk 文件时,这是获取可读源代码和其他数据源的方法。

上面说的没什么用,我们看下面的分析和抓包。

签名问题

问题描述:

安装包签名的目的是为了方便升级、模块化程序设计开发、代码或数据共享,以及防止APP被恶意的第三方程序覆盖或替换。如果某些apk程序签名有问题,说明该程序存在安全问题。

检测工具:.exe,右键工具

检测方法:.exe---XXX

四大组件保障安全

问题描述:

活动

服务

内容提供商

广播接收器

组件暴露可以让攻击者调用组件来实现一些复杂的攻击,比如利用APP组件之间的协作来泄露敏感的程序信息。

检测工具:(java)、右键工具等。

检测方法:检查.xml文件是否有“true”,并检查客户端对应的日志是否会打印一些用户或者服务端的敏感信息。

日志问题

问题描述:

有时开发人员为了调试目的经常会在日志中输入很多敏感信息,这些信息可能包括用户密码信息等,攻击者通过分析它就可以进行有效的攻击。

检测工具:adb.exe,或者aapt.exe,DDMS等。

检测方法:用adb.exe,输入 可以查看所有日志信息,可以指定进程名,然后获取指定程序的日志信息。adb | grep XXXX

本地存储问题

组件中默认开启提示用户是否保存密码的功能,若用户选择保存,则用户名和密码会以明文形式存储在应用目录/.db中。

检测工具:、adb等工具

检测方法:代码审计,或者直接查看app对应的数据数据库,打开查看是否存储了敏感信息,如果有的话,会出现以下效果

其他配置问题

检测工具:右键工具、棒棒扫描平台等。

检测方法:检查时主要检查以下几点:

检查最低SDK版本是否大于16;

检查文件备份是否存在问题;:=“true”

检查动态调试是否有问题;:=“”。

其他等等

问题描述:

.xml文件是整个应用程序的信息描述文件。

里面包含了很多重要的信息,比如版本信息、权限信息、文件备份

这些信息还可能暴露安全问题。

HOOK开源手机扫描工具

一,

安装方法查看

学习材料:

app开发公司定制小程序_app定制和小程序开发_定制app软件开发

MobSF官方学习文档:https://mobsf.github.io/docs/#/zh-cn/ MobSF官放github:https://github.com/MobSF/Mobile-Security-Framework-MobSF 快速学习使用参考:https://www.jianshu.com/p/4ba4312985ee

APP安全在线检测系统

腾讯金刚审计系统 http://service.security.tencent.com/kingkong 免费 无限制 腾讯御安全 http://yaq.qq.com/ 免费 查看漏洞详情需认证 阿里聚安全 http://jaq.alibaba.com/ 免费 查看漏洞详情需认证 360显微镜 http://appscan.360.cn/ 免费 无限制 360APP漏洞扫描 http://dev.360.cn/html/vulscan/scanning.html 免费 无限制 百度MTC http://mtc.baidu.com 9.9元/次 无限制 梆梆 https://dev.bangcle.com 免费 无限制 爱内测 http://www.ineice.com/ 免费 无限制 通付盾 http://www.appfortify.cn/ 免费 无限制 NAGA http://www.nagain.com/appscan/ 免费 无限制 GES审计系统 http://01hackcode.com/ 免费 无限制 盘古出品的Janeushttp://appscan.io Janus http://cloud.appscan.io APP逆向main_classify_list https://android.fallible.co/ java在线反编译Java decompiler online http://www.javadecompilers.com 腾讯电脑管家:哈勃 http://habo.qq.com/ 腾讯TSRC:金刚 http://service.security.tencent.com/ 阿里聚安全:http://jaq.alibaba.com/ 西安交通大学 sanddroid:http://sanddroid.xjtu.edu.cn/#home 金山火眼:http://fireeye.ijinshan.com/analyse.html 瀚海源文件B超:https://b-chao.com

APK 渗透测试基础知识

服务器(APK)

用户遍历

问题描述:

用户在登录或者注册的时候经常会碰到这样的情况:当用户不存在时会返回“用户不存在”,当密码错误时会返回“密码信息错误”,这样就会导致用户枚举。

检测工具:抓包工具等

检测方式:抓包分析数据,或者直接登录查看页面返回信息,无需任何工具

弱密码和暴力破解

问题描述:

在某些情况下,系统登录密码是简单的弱密码,攻击者可以通过简单的尝试登录系统。例如:

检测工具:等

检测方法:使用burp抓包,然后尝试使用暴力破解功能。

短信轰炸

问题描述:

现在很多系统都要求用户在登录或者注册的时候输入手机号,然后发送验证码,如果这个过程配置不当,可能会造成短信轰炸,攻击者可以不断的发送短信验证码。

检测工具:抓包工具等

检测方法:捕获发送验证码的数据包,然后不断重放,确定返回的结果

微信小程序渗透测试

小程序渗透可以分为两个方面,脱壳可以挖掘出信息泄露问题和隐藏接口,抓包可以测试一些逻辑漏洞和API安全问题。两者结合进行调试和测试

小程序功能模块安全

网络传输安全

虽然微信小程采用了传输的方式,并对访问域名进行了验证和控制,但是如果后端服务器不进行SSL双向认证的话,依然无法抵御攻击者在本地安装代理证书实施中间人攻击的威胁。

数据存储安全

本地数据存储以(KEY,)形式存储在DB中,数据保护继承了微信数据库加密保护策略。文件存储安全本地文件存储采用HASH映射机制定位文件,文件存储在外部存储中,通过自定义算法实现完整性验证。

测试。

框架本身是安全的

该框架继承了微信成熟的框架和底层TBS浏览器内核,因此在0DAY漏洞出现之前,整体框架安全性还是很可靠的;伪造小程序二维码安全性

扫码功能依赖微信APP原生的扫码功能;小程序具体页面的直接二维码生成依赖,但是通过小程序的和获取,攻击者无法获取到这些信息来伪造生成二维码;

数据泄露安全

小程序登录系统可以依托微信接口和公众号平台,也可以由小程序自身实现。前者按照微信平台的安全规范实现,微信进行整体安全维护,因此安全性更高。后者由小程序自身把控。从上述客户端功能模块安全性分析可知,小程序客户端本身的安全性继承了微信APP的整体安全建设,因此不需要像传统的移动端测试那样对客户端本身进行测试,测试的重点还是在服务端,也就是小程序与后端交互过程中的安全风险,和测试WEB基本没区别。但和传统WEB黑盒测试不同的是,到目前为止,小程序的源代码信息可以非常容易地被提取出来,如果小程序在传输过程中对数据进行了加密,那么我们可以通过对源代码的分析,推导出整个加密算法的技术流程。

收集信息

确定目标

确认小程序主要信息,在更多小程序资讯中查找小程序相关信息

获取小程序包

个人电脑

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

然后在你的微信文件保存路径中找到小程序包,就可以通过时间或者小程序快速定位到目标包。

微信电脑端应用包是加密的,需要工具解密下载地址

https://share.weiyun.com/uMqNGOXv

?:\*\WeChat Files\Applet

将工具放在这个微信目录下然后选择具体的文件包。

移动的

找到对应目录,拉取包

保存路径:/data/data/com..mm//{用户ID}//pkg/

iOS保存路径:/var///Data//{}

UUID}///{用户ID}////{应用ID}/ )

由于数据目录需要root权限,因此手机或模拟器需要root。

模拟器获取小程序包流程

这里我使用Nox模拟器,登录微信,找到小程序

方法是把复制的内容放到mnt->->下面,会自动同步到PC端,这个是模拟器的共享目录

拆开

工具地址

https://github.com/xuedingmiaojun/wxappUnpacker

具体环境安装参考笔者的文件然后扔到微信开发者工具里。

https://all- file3.lanzoug.com/0809220061829900bb/2022/02/08/bc8097d71ae3b99e06a1d74d95fb9c88.zip ? st=ce1_VHSN5__V1sFgCEZC7Q&e=1691593387&b=UuVZ6QGOBelZmFenVeAGkVWlCLECs1HYCb1c_bVPfA_ bQI4FnWV7JU5lKiVOcK3wW2UygBJwZuViA_c&fi=61829900&pid=222-130-157-250&up=2&mp=0&co=0

数据包捕获

+burp 流量拦截

1>抓包并设置转发

0x01:打开工具,点击file->直接抓包(这里默认代理端口是8888)

点击->->可以查看其默认的代理端口(当然你可以修改)

0x02:进行端口转发并将流量转发至

点击工具->选项->连接->网关,然后在手动代理配置中输入以下内容:

127.0.0.1:8080 (8080为代理端口,其他端口可以自行设置,这里我们出于习惯设置8080)

分享