当前位置:   article > 正文

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
  • 1
  • 2
  • 3

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

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

  • 1
  • 2
?:\*\WeChat Files\Applet
  • 1

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

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

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
  • 1
  • 2
  • 3
  • 4
  • 5

抓包

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/524936
推荐阅读
相关标签
  

闽ICP备14008679号