赞
踩
(1)下载安装
微信小程序:通过微信(扫描二维码、搜索、分享)即可获得;
App:从应用商店(App Store、应用汇等)下载安装;
(2)内存占用
微信小程序:无需安装,和微信共用内存使用,占用内存空间忽略不计;App:安装于手机内存,一直占用内
存空间,太多的 App 可能导致内存不足;
(3)手机适配
微信小程序:一次开发,多终端适配;
App:需适配各种主流手机,开发成本大;
(4)产品发布
微信小程序:提交到微信公众平台审核,云推送;
App:向十几个应用商店提交审核,且各应用商店所需资料不一样,非常繁琐;
(5)功能区别
微信小程序:限于微信平台提供的功能;
App:对硬件资源的利用更加淋漓尽致,可以做出功能、设计、效果和流畅程度远远超过小程序的软件和服
务;
(6)传输要求
微信小程序:必须使用 HTTPS,且绑定域名需要备案,不能直接使用 IP 作为地址;
App:依照开发商自主要求,HTTPS 传输可选可不选;
(7)开发背景
微信小程序:适合初创团队,试错成本低,需要较少时间和资金投入;
App:适合成熟的商业大公司,对自我品牌要求较高的企业。
Android 应用程序是在开发应用程序时创建的数据和资源文件的归档文件。 Android 应用程序的扩展名是.apk
,意思是应用程序包,在大多数情况下包括以下文件和文件夹:
C-lasses.dex (文件)
AndroidManifest.xml (文件)
resources.arsc (文件)
res (文件夹)
assets (文件夹)
lib (文件夹)
为了验证这一点,我们可以使用任何归档管理器应用程序(如 7zip,WinRAR 或任何首选应用程序)简单地
解压缩应用程序。 在 Linux 或 Mac 上,我们可以简单地使用unzip 命令来展示压缩包的内容,如下面的截图所示:
Android 应用程序由各种组件组成,它们一起创建可工作的应用程序。 这些组件是活动,服务,广播接收器,内容供应器和共享首选项。 在继续之前,让我们快速浏览一下这些不同的组件
现在我们知道了 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数据库,打开检查是否存储有敏感信息。如果有就会存在如下所示效果
检测工具:android右键工具,APKtool,梆梆扫描平台等
检测方法:在检查的时候主要检查以下几点:
检查是否最小sdk版本是否大于16;
检查是否存在任意文件备份的问题;android:allowBackup=“true”
检查是否存在动态调试的问题;android:debuggable=“false”。
其他等等;
问题描述:
AndroidManifest.xml文件是整个应用程序的信息描述文件。
这里面包含了很多重要信息,比如版本信息,权限信息,文件备
份等配置信息。这些信息也会暴露出安全问题。
一、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
腾讯金刚审计系统 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)
用户遍历
问题描述:
用户在登录或者注册时,往往会遇到一种情况,当输入不存在用户时会返回用户不存在,当密码不正确时,会返回密码信息不正确,这种情况会导致用户枚举.
检测工具:Burpsuite,Fillder等抓包工具
检测方法:Burpsuite抓包分析数据,或者什么工具也不需要直接登录查看页面返回信息
弱口令与暴力破解
问题描述:
在某些情况下,系统登录的口令是简单的弱口令,这样导致攻击者可以通过简单尝试登录系统。比如:admin/admin
检测工具:Burpsuite等工具
检测方法:使用burp抓包以后,然后使用暴力破解功能进行尝试。
短信轰炸
问题描述:
现在很多系统在登录或者注册的时候要求用户输入手机号,然后发送验证码。该过程如果配置不当可能造成短信轰炸,攻击者可以一直发送短信验证码。
检测工具:Burpsuite等抓包工具
检测方法:抓取发送验证码的数据包,然后不断的进行重放,判断返回结果
小程序渗透分为两个方面,解包可以挖掘信息泄露问题、隐藏的接口,抓包可以测试一些逻辑漏洞、API安全问题,将两者结合起来进行调试测试
网络传输安全
微信小成熟传输虽然使用 HTTPS,并对访问域名进行校验控制,但如果后端服务器未做 SSL 双向认证,仍无法抵御攻击者在本地安装代理证书实施中间人攻击的威胁。
数据存储安全
本地数据存储采用(KEY,VALUE)形式存放在 DB,数据的保护继承了微信的数据库加密防护策略。文件存储安全本地文件存储采用 HASH 映射机制进行文件定位,文件存储在外部存储,本身通过自定义算法实现完整性校
验。
框架本身安全
框架上继承了微信成熟的 JSAPI 框架和底层的 TBS 浏览器内核,因此在未出现 0DAY 漏洞前,整体的框架安全还是十分可靠;伪造小程序二维码安全
扫码功能依赖微信 APP 的原生的扫码功能;生成小程序特定页面的直达二维码,依赖于 ACCESS_TOKEN
,而 ACCESS_TOKEN
是通过小程序私有的APPID
和APPsecret
请求得到,攻击者无法获知到 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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。