发布信息

从 web 转入 app 安全领域,你需要了解这些基础知识

作者:软荐小编      2024-06-21 15:05:43     194

首发于公众号:剑客古月的安全屋

字数:1676

阅读时间:15分钟

免责声明:请勿利用本文中的相关技术进行非法测试,任何因传播、使用本文提供的信息而造成的直接或间接的后果和损失均由使用者本人负责,本文作者对此不承担任何责任。法律渗透,本文内容纯属虚构,任何巧合纯属偶然

目录

0x01 简介

最近我在挖掘漏洞的过程中发现了应用程序中的几个漏洞,并借此机会从 Web 安全转向了应用程序安全。

0x02 app基础知识补充

笔者曾经开发过一个APP,从前端玩到后端软件反编译工具,单独开发,直接用uniapp。

制作一个APP,需要对我们的程序代码和运行环境进行编译打包,最终生成一个软件,而下载到手机上安装的过程,其实就是解包的过程。

大部分的请求其实都是嵌入在源码里的,就像js的ajax请求一样,请求完之后会在客户端返回并渲染,我们需要找到接口,域名等,除了抓包的形式,还有反编译的方式。

正向开发: 开发 -> 编译 -> 加密(加固、混淆、加壳) -> 打包
逆向:     解包 -> 解密(脱壳、反混淆) -> 反编译 -> 提取敏感信息

反编译就是这样一个逆向的过程,后面我们讲的Frida就是基于这样的概念来捕获漏洞的。

应用大致分为三种类型:原生、Web、混合

本机 -> 计算机、闹钟

Web->美团、百度,都可以在浏览器打开(也就是网页版)

混合 -> 微信、百度地图

我们的逆向工程针对的是这种类型的混合应用程序,使用数据包捕获来发现漏洞。

因此我将分两步进行。

1. 逆向反编译

2. 数据包捕获

0x03 反编译工具下载1.MobSF

这是网上最好用的免费开源工具,只需要上传文件包就可以自动分析安全缺陷。

docker pull opensecurity/mobile-security-framework-mobsf:latest
docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest

建议快速部署在云服务器上

反编译工具有哪些_反编译的软件_软件反编译工具

软件反编译工具_反编译的软件_反编译工具有哪些

使用完之后记得及时关闭,否则就免费领取了。

2. Android杀手

几年前就停止更新了(因为太尖锐了)

你可以在github上搜索它并从readme下载

其用途如下

反编译
代码编辑: 可直接在工具中编辑smali代码
签名

软件反编译工具_反编译工具有哪些_反编译的软件

3.jadx

我觉得这个工具比较有用,类似于集成的想法

软件反编译工具_反编译的软件_反编译工具有哪些

缺点是如果总代码量超过30MB,索引功能就会失效,只能使用传统的三件套apktool+dex2jar+jd-gui

0x04 SDK平台TOOL配置

SDK Platform TOOLs 是 Android SDK 的一个组件,包含与 Android 平台交互的工具,包括 adb(老熟人)和 fastboot

adb:是一款功能多样的命令行工具,就像terminal提供对linux的访问权限,adb提供对unix shell的访问权限
fastboot:刷入映像,刷机

要使用 adb 命令与手机交互,您需要启用 USB 调试模式。

安装链接参考

https://blog.csdn.net/Yocczy/article/details/130916750?ops_request_misc=&request_id=&biz_id=102&utm_term=SDK%20Platform%20TOOls%E9%85%8D%E7%BD%AE&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-130916750.142^v100^pc_search_result_base9&spm=1018.2226.3001.4187

软件反编译工具_反编译的软件_反编译工具有哪些

软件反编译工具_反编译的软件_反编译工具有哪些

0x05 Frida 介绍与安装

以前我在玩闪光机的时候,总是听到Frida这个名字。

Frida 是一个动态插桩工具,可以在原生 app 的内存空间中插入一些代码,从而动态地监控和修改行为。由于它使用了 python、js 等语言,所以可以将 js 等脚本插入到 app 的内存中,从而跟踪和监控 app 的逻辑,甚至修改逻辑。这种方法也叫 hooking。

Frida 可以实现从 Java 层到 Native 层的 hook,基本覆盖全平台

我们先在手机上安装frida

windows10
python3.7
安卓

Windows 计算机

pip install frida==16.1.10 -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install frida-tools==12.1.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

建议使用16.1.10版本,其他版本不稳定,会报错。

安装完成后确定手机的架构

adb shell
getprop ro.product.cpu.abi

反编译的软件_软件反编译工具_反编译工具有哪些

去官网下载对应服务器

https://github.com/frida/frida/releases

软件反编译工具_反编译的软件_反编译工具有哪些

下载完成后,解压并将文件推送过去。

软件反编译工具_反编译的软件_反编译工具有哪些

adb push frida-server-16.1.10-android-arm64 /data/local/tmp/fs

接下来授予其权限并运行

adb shell

su

cd /data/local/tmp/

chmod 777 fs

./fs

反编译的软件_反编译工具有哪些_软件反编译工具

若没有回声,则表示操作成功。

打开一个新的cmd并转发此端口

adb 转发 tcp:27042 tcp:27042

软件反编译工具_反编译的软件_反编译工具有哪些

现在我们看看frida能不能用

查看流程

frida-ps -U

反编译的软件_反编译工具有哪些_软件反编译工具

安装成功

0x06 数据包捕获

配置完采集代理,安装好证书之后,如果使用burp抓包的话,可以分为以下几种情况:

1.APP设置了网络流量不走代理
2.代理检测
3.单向认证检测
4.双向认证检测

有些中大型应用因为证书验证、验证代理等原因导致无法访问应用,或者没有使用http/s协议,所以无法抓包软件反编译工具,有些应用还会检测是否是模拟器。

如果你的手机是Android 7-11,这里有一个工具r0capture(教程在百度上)

但不幸的是,我已经 13 岁了,所以我别无选择,只能按照步骤操作,绕过这些

和往常一样,magisk+lsposed 并加载模块

反编译的软件_软件反编译工具_反编译工具有哪些

设置好代理后,安装根证书即可成功抓包(这个仅供单向认证参考,对于双向或者代理,可以考虑frida的hook)

稍后我们将为大家带来更多有关应用程序安全的知识。

相关内容 查看全部