APP小程序渗透方法

APP与小程序的渗透

微信小程序与APP的区别

(1)下载安装
微信小程序:通过微信(扫描二维码、搜索、分享)即可获得;
App:从应用商店(App Store、应用汇等)下载安装;
(2)内存占用
微信小程序:无需安装,和微信共用内存使用,占用内存空间忽略不计;App:安装于手机内存,一直占用内
存空间,太多的 App 可能导致内存不足;
(3)手机适配
微信小程序:一次开发,多终端适配;
App:需适配各种主流手机,开发成本大;
(4)产品发布
微信小程序:提交到微信公众平台审核,云推送;
App:向十几个应用商店提交审核,且各应用商店所需资料不一样,非常繁琐;
(5)功能区别
微信小程序:限于微信平台提供的功能;
App:对硬件资源的利用更加淋漓尽致,可以做出功能、设计、效果和流畅程度远远超过小程序的软件和服
务;
(6)传输要求
微信小程序:必须使用 HTTPS,且绑定域名需要备案,不能直接使用 IP 作为地址;
App:依照开发商自主要求,HTTPS 传输可选可不选;
(7)开发背景
微信小程序:适合初创团队,试错成本低,需要较少时间和资金投入;
App:适合成熟的商业大公司,对自我品牌要求较高的企业。

APP的渗透

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

  • C-lasses.dex (文件)
  • AndroidManifest.xml (文件)
  • resources.arsc (文件)
  • res (文件夹)
  • assets (文件夹)
  • lib (文件夹)

为了验证这一点,我们可以使用任何归档管理器应用程序(如 7zip,WinRAR 或任何首选应用程序)简单地
解压缩应用程序。 在 Linux 或 Mac 上,我们可以简单地使用unzip 命令来展示压缩包的内容,如下面的截图所示:
在这里插入图片描述Android 应用程序由各种组件组成,它们一起创建可工作的应用程序。 这些组件是活动,服务,广播接收器,内容供应器和共享首选项。 在继续之前,让我们快速浏览一下这些不同的组件

  • 活动(Activity):这些是用户可以与之交互的可视界面。这些可以包括按钮,图像,TextView 或任何其他可视组件。
  • 服务(Service):这些 Android 组件在后台运行,并执行开发人员指定的特定任务。这些任务可以包括从 HTTP 下载文件到在后台播放音乐的任何内容。
  • 广播接收器(Broadcast Receiver):这些是 Android 应用程序中的接收器,通过 Android 系统或设备中存在的其他应用程序,监听传入的广播消息。一旦它们接收到广播消息,就可以根据预定义的条件触发特定动作。条件可以为收到 SMS,来电呼叫,电量改变等等。
  • 共享首选项(Shared Preference):应用程序使用这些首选项,以便为应用程序保存小型数据集。此数据存储在名为shared_prefs 的文件夹中。这些小数据集可以包括名值对,例如游戏中的用户得分和登录凭证。不建议在共享首选项中存储敏感信息,因为它们可能易受数据窃取和泄漏的影响。
  • 意图(Intent):这些组件用于将两个或多个不同的 Android 组件绑定在一起。意图可以用于执行各种任务,例如启动动作,切换活动和启动服务
  • 内容供应器(Content Provider):这些组件用于访问应用程序使用的结构化数据集。应用程序可以使用内容供应器访问和查询自己的数据或存储在手机中的数据。

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

上面这些没啥用,看下面解析与抓包吧

签名问题

问题描述:
安装包签名的目的是为了便于升级,便于模块化程序设计和开发,代码或者数据的共享,区别app防止被恶意第三方程序覆盖或者替换掉。有些apk程序签名有问题,则说明程序存在安全问题。
检测工具:jarsigner.exe, Android右键工具
检测方法:jarsigner.exe –verify –verbose –certs XXX

四大组件安全

问题描述
Activity 活动
Service 服务
Content Provider 内容提供者
Broadcast Receiver 广播接收器
组件暴露,使得攻击者可以调用组件去实现一些复杂攻击。比如:利用APP组件间相互协作泄露程序敏感信息。
检测工具:Jd_GUI(java decompile),右键工具,Android killer等
检测方法:通过查看Androidmanifest.xml文件,判断exported="true"是否存在检测客户端对应的Logcat日志是否会打印一些用户或服务器的敏感信息。

日志问题

问题描述
有时候开发人员为了便于调试往往在日志里面输入大量敏感信息,这些信息可能包含了用户密码信息等。攻击者通过分析,可以进行有效的攻击。
检测工具:adb.exe ,或者aapt.exe,DDMS等
检测方法:借助adb.exe,输入logcat可以查看所有日志信息。可以指定进程名,然后获取指定程序的日志信息。Adb logcat | grep XXXX
在这里插入图片描述

本地存储问题

Android的Webview组件中默认打开了提示用户是否保存密码的功能,如果用户选择保存,用户名和密码将被明文存储到该应用目录databases/webview.db中。
检测工具:Android killer,adb等工具
检测方法:代码审计,或者直接检查app对应的data数据库,打开检查是否存储有敏感信息。如果有就会存在如下所示效果
在这里插入图片描述

Androidmanifest其他配置问题

检测工具:android右键工具,APKtool,梆梆扫描平台等
检测方法:在检查的时候主要检查以下几点:
检查是否最小sdk版本是否大于16;
检查是否存在任意文件备份的问题;android:allowBackup=“true”
检查是否存在动态调试的问题;android:debuggable=“false”。
其他等等;
问题描述
AndroidManifest.xml文件是整个应用程序的信息描述文件。
这里面包含了很多重要信息,比如版本信息,权限信息,文件备
份等配置信息。这些信息也会暴露出安全问题。
在这里插入图片描述

HOOK开源移动端扫描工具

一、MobSF

安装方法查看此处
学习资料:

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)

  • 用户遍历
  • 弱口令以及暴力破解
  • SQL注入
  • 短信轰炸
  • 短信绕过
  • 任意文件上传
  • 敏感信息明文传输
  • 越权
  • 其他

用户遍历

问题描述
用户在登录或者注册时,往往会遇到一种情况,当输入不存在用户时会返回用户不存在,当密码不正确时,会返回密码信息不正确,这种情况会导致用户枚举.
检测工具:Burpsuite,Fillder等抓包工具
检测方法:Burpsuite抓包分析数据,或者什么工具也不需要直接登录查看页面返回信息

弱口令与暴力破解

问题描述
在某些情况下,系统登录的口令是简单的弱口令,这样导致攻击者可以通过简单尝试登录系统。比如:admin/admin
检测工具:Burpsuite等工具
检测方法:使用burp抓包以后,然后使用暴力破解功能进行尝试。

短信轰炸

问题描述:
现在很多系统在登录或者注册的时候要求用户输入手机号,然后发送验证码。该过程如果配置不当可能造成短信轰炸,攻击者可以一直发送短信验证码。
检测工具:Burpsuite等抓包工具
检测方法:抓取发送验证码的数据包,然后不断的进行重放,判断返回结果

微信小程序渗透

测试方面

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

小程序功能模块安全

网络传输安全
微信小成熟传输虽然使用 HTTPS,并对访问域名进行校验控制,但如果后端服务器未做 SSL 双向认证,仍无法抵御攻击者在本地安装代理证书实施中间人攻击的威胁。

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

框架本身安全
框架上继承了微信成熟的 JSAPI 框架和底层的 TBS 浏览器内核,因此在未出现 0DAY 漏洞前,整体的框架安全还是十分可靠;伪造小程序二维码安全
扫码功能依赖微信 APP 的原生的扫码功能;生成小程序特定页面的直达二维码,依赖于 ACCESS_TOKEN,而 ACCESS_TOKEN 是通过小程序私有的APPIDAPPsecret请求得到,攻击者无法获知到 APPsecret 信息伪造生成二维码;

数据泄露安全
小程序登录体系可以依赖微信接口和公众号平台,也可以由小程序自行实现。前者根据微信平台的安全规范实施,由微信进行整体的安全维护,因此安全性较高。后者则由小程序自行控制安全性。从上述的客户端功能模块安全分析中来看,小程序客户端本身的安全继承了微信 APP 整体的安全建设。因此无需像传统的移动端测试对客户端本身进行测试,测试的重点还是在于服务端,即小程序与后端进行交互过程中存在的安全风险,基本上跟测 WEB 没有区别。但是跟传统黑盒测试 WEB 的区别是,在目前为止,可以非常简单的提取到小程序的源码信息。如小程序在传输过程中进行了数据的加密传输,那么我们就可以通过源码的分析来得出整个加密算法的技术流程。

信息收集

确定目标
小程序主体信息确认,在小程序更多资料发现小程序相关信息

在这里插入图片描述
小程序包获取
PC端

首先在微信中搜索到小程序,并打开简单浏览
然后在自己微信文件保存路径下找到applet下找到该小程序包,可以通过时间或者小程序的appid快速定位到目标包
微信电脑端小程序包存在加密,需要使用工具进行解密下载地址

https://share.weiyun.com/uMqNGOXv

?:\*\WeChat Files\Applet

在此微信目录下将工具放置,然后选择具体文件包即可。
在这里插入图片描述移动端
找到对应目录,把包拉出来即可
安卓保存路径:/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

具体环境安装参照 作者文件然后将其扔到 微信开发者工具即可

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

抓包

fiddle+burp 流量截取
1>fiddle抓包并设置转发
0x01:打开fiddler工具,点击file->Capture Traffic 就可以直接抓包了(这里fiddler默认代理端口是8888)
在这里插入图片描述点击工具->选项->连接可以查看其默认代理端口(当然你可以修改)

在这里插入图片描述
0x02:做端口转发,将流量转发到burpsuite
点击工具->选项->连接>网关,然后在手动代理配置当中输入以下内容:
127.0.0.1:8080(8080是burpsuite的代理端口,可以自己设置其他端口,这里出于习惯设置的8080)
在这里插入图片描述

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Uni-app 是一款能够开发多个终端的跨平台框架,包括小程序、H5、App 等,可以在同一个代码库中开发出具有不同功能的应用。而 Uni-app 小程序源码就是使用 Uni-app 开发的小程序的代码。 Uni-app 小程序源码具有以下优势: 1. 高效开发:借助 Uni-app 的跨平台开发框架,Uni-app 小程序源码可以快速开发出具有高质量和高性能的小程序。 2. 多平台统一:Uni-app 小程序源码可以快速发布到多个平台的小程序环境中,如微信小程序、支付宝小程序、百度小程序等。 3. 组件库完整:Uni-app 小程序源码提供了完整的组件库和工具库,开发者可以快速开发出小程序。 4. 商业支持:Uni-app 小程序源码由腾讯公司开发,具有较强的商业支持,可以解决开发者在开发过程中的各种问题。 总的来说,Uni-app 小程序源码是一种高效、跨平台的小程序开发方式,可以大大节省开发者的时间和精力。同时,也为多个终端用户提供了更加方便和高效的小程序服务。 ### 回答2: Uni-app是一个跨平台开发框架,支持将一个代码库编译成多个平台的应用程序,其中包括iOS、Android、H5、微信小程序等。而Uni-app小程序源码是指使用Uni-app框架开发出来的小程序代码,通过该源码可以进行二次开发,解析出小程序的各个功能和页面,进行定制化开发,满足不同业务场景的需求。 使用Uni-app小程序源码可以快速实现小程序的开发,不仅减少了代码的编写量,同时也兼容了多个平台,方便用户在不同设备上使用该应用。同时,Uni-app小程序源码的可维护性也很高,因为只需要在一个代码库中进行修改和维护,而不需要针对每个平台单独编写代码。 在使用Uni-app小程序源码时,需要先进行环境搭建,安装相关的开发工具和依赖库,然后即可进行开发。源码中包含了小程序的各个功能和页面,开发者可以根据自己的需求进行修改和扩展,同时也可以使用Uni-app提供的组件和API完成自己的开发任务。 需要注意的是,在进行Uni-app小程序源码开发时,需要熟悉Vue.js框架的相关知识,因为Uni-app是基于Vue.js的框架进行开发的。同时,还需要了解小程序开发的相关知识,包括小程序的生命周期、路由、组件等。掌握这些知识后,才能够更好地利用Uni-app小程序源码进行开发,实现优秀的小程序应用。 ### 回答3: uni-app 小程序源码是指在 uni-app 开发框架下开发的小程序代码。uni-app 是一个多端开发框架,可以让开发者使用一套代码同时开发出跨 iOS、Android、H5 等多个平台的应用程序。在这个框架下,我们可以通过 Vue.js 开发小程序,并且使用 uni-app 提供的开发工具来进行调试和编译。 uni-app 具有许多优点,如跨平台、快速开发、高效编译等,其提供了丰富的组件和插件,让开发者可以轻松地在小程序上实现各种功能。开发者只需要按照 Vue.js 的组件开发方式去编写小程序代码,就可以实现复杂的应用逻辑。 uni-app 小程序源码的开发需要一定的技术积累和编程经验,同时还需要对互联网技术有一定的了解。一般来说,开发者需要掌握 Vue.js 基础、小程序开发技能等,才能开发出可靠、高效的 uni-app 小程序源码。 总之,uni-app 小程序源码是一个非常有价值的开发项目,可以帮助更多的开发者快速实现小程序应用功能,同时也可以提高开发效率,降低开发成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值