APP攻防--签名组件权限

news2024/11/24 19:07:12

前言

上文说到了反编译的方式,这期就深入到APP内部,即客户端安全。

安装包签名

在Android操作系统中,每个应用程序(APP)安装包(APK)都必须经过数字签名,以确保应用的完整性和来源验证。

apksigner

apksigner是Android-SDK里面的一个工具,SDK的安装方式大家可自行搜索。apksigner可以检测安装包的签名。
命令:
.\apksigner.bat verify -v --print-certs .\test.apk
image.png
可以看到这个APP只进行了v1签名,这是不安全的。如果只使用v1签名方案,那么它就容易受到安卓5.0-8.0上的Janus漏洞(CVE-2017-13156)的攻击。在安卓5.0-7.0上运行的使用了v1签名方案的应用程序,以及同时使用了v2/v3签名方案的应用程序也同样存在漏洞。

apk-info

这个工具是图形化的,不仅仅能看到签名,还有组件等详细信息
image.png
工具地址:
https://pan.baidu.com/s/1soEX-D_k54k9b07hu1UWlw?pwd=cy7t
提取码:cy7t

组件

四大组件

Android应用程序的四大组件是构成Android应用的核心元素,它们允许应用程序执行不同的任务和功能。这四大组件包括:

Activity(活动):Activity是Android应用的用户界面组件,通常代表应用的一个屏幕或一个用户与应用程序进行交互的界面。每个Activity都是一个独立的UI界面,可以包括用户界面元素,如按钮、文本框和图像。应用程序通常由多个Activity组成,它们通过Activity之间的切换来实现不同的用户交互。

Service(服务):Service是一种在后台运行的组件,它执行长时间运行的操作,而不需要与用户界面进行交互。服务通常用于执行一些后台任务,如音乐播放、文件下载、数据同步等,以便不会阻塞用户界面。服务可以在后台运行,即使用户切换到其他应用或锁定屏幕。

Broadcast Receiver(广播接收器):广播接收器是一种用于监听和响应系统广播消息或应用内自定义广播的组件。它可以在应用内或跨应用之间传递消息,以触发相应的操作。例如,应用可以注册广播接收器来监听手机电池电量变化、网络连接状态、来电通知等事件。

Content Provider(内容提供者):内容提供者是用于管理应用内数据共享的组件。它允许不同应用程序之间共享数据,并提供了标准的接口来访问和操作数据。内容提供者通常用于访问应用的数据库或共享数据,以确保数据的安全和一致性。

这四大组件共同构成了Android应用的基础架构,使应用能够实现各种不同的功能和交互。开发者可以根据应用的需求组合和使用这些组件,以创建丰富的Android应用程序。
大家可以看一下前辈们的文章
安卓四大组件知识点总结

ADB

ADB是什么

ADB项目下载地址:https://adbshell.com/downloads
ADB(Android Debug Bridge)是Android开发工具中的一个命令行工具,用于与Android设备通信和管理。顾名思义,安卓调试桥,它提供了一种方式,开发者可以在开发、调试和测试Android应用程序时与设备或模拟器进行交互。

ADB的主要功能包括:

安装和卸载应用程序:ADB允许开发者将应用程序安装到设备或模拟器上,也可以卸载已安装的应用程序。

文件传输:通过ADB,可以在设备和计算机之间传输文件,包括复制文件到设备或从设备中获取文件。

调试和日志记录:开发者可以使用ADB来启用和管理应用程序的调试模式,以便进行调试。还可以使用ADB来捕获设备上的日志信息,有助于排查问题。

Shell访问:通过ADB,开发者可以访问设备的Unix shell,执行命令和查看设备的状态。

端口转发:ADB允许将本地计算机上的端口与设备上的端口进行转发,从而实现本地和设备之间的通信。

屏幕截图和录屏:ADB可以用来获取设备屏幕的截图,也可以用于录制设备屏幕的视频。

设备信息和状态查询:通过ADB,可以获取设备的信息,如设备型号、操作系统版本和唯一标识符等。

ADB是Android开发的重要工具之一,它使开发者能够更轻松地进行应用程序开发、测试和调试,以确保应用在不同设备上正常运行。ADB通常与Android SDK一起提供,安装Android Studio时会自动包括ADB。

常用命令
adb connect 127.0.0.1:62001 链接夜神模拟器
adb devices 查看连接
adb logcat  打印
logcatadb install  安装,覆盖安装是-r
adb uninstall卸载
adb push   推送本地文件至 Android 设备
adb pull    推送Android文件至本地
adb shell mount -o remount rw / 修改系统读写权限
adb root  获得root权限
adb kill-server  重启

也可以将手机通过数据线连接电脑,直接adb连接手机。
image.png

drozer

drozer是什么

Drozer是一种用于Android应用渗透测试和安全评估的开源工具。它提供了一组功能,使安全研究人员和渗透测试人员能够分析、评估和测试Android应用程序的安全性。Drozer旨在帮助识别和利用应用程序中的漏洞,并提供有关潜在威胁的信息。

Drozer的一些主要功能和用途包括:

应用安全分析:Drozer允许安全专家对应用程序进行深入的安全分析,包括查找应用程序中的漏洞、弱点和潜在的安全问题。

应用权限检查:它可以检查应用程序的权限请求,并提供关于应用程序可能过度请求权限或滥用权限的信息。

漏洞利用:Drozer包括一些模块,用于利用已知的Android漏洞,以测试应用程序的弱点。

数据泄漏测试:它可以帮助识别应用程序中的数据泄漏问题,包括敏感数据泄露。

反编译和逆向工程:Drozer允许用户分析应用程序的代码,进行逆向工程,并查看应用程序的内部结构。

交互式漏洞利用:它提供了一个交互式Shell,允许用户执行命令和进行漏洞测试。

Drozer是一个功能强大的工具,但需要谨慎使用,因为在未经授权的环境中使用它可能会违反法律。通常,Drozer被用于合法的安全评估和渗透测试,以帮助开发者和组织识别和解决Android应用程序中的安全问题。安全专家通常会在受控环境中使用它,以测试应用程序的安全性。

使用准备

drozer分为两部分,手机上要安装drozer Agent为服务端,电脑端安装console是控制台。
image.png
image.png
drozer使用必须是python2.7环境。
adb连接手机:
image.png
然后进行端口转发:
adb forward tcp:31415 tcp:31415
drozer console connect
image.png
出现这个页面就代表连接成功。
在手机上打开drozer Agent,打开这个开关
image.png

drozer基本命令

列出所有APP安装包
run app.package.list
image.png
查看包详情
run app.package.info -a com.xxxxxx.sieve
image.png
列出组件攻击面
run app.package.attacksurface com.xxxxxx.sieve
image.png
查看activity组件信息
run app.activity.info -a com.xxxxxx.sieve
查看broadcast组件信息
run app.broadcast.info -a com.xxxxxx.sieve
查看service组件信息
run app.service.info -a com.xxxxxx.sieve
查看Content Provider组件信息
run app.provider.info -a com.xxxxxx.sieve
image.png
对应每种组件下有各种漏洞检测方式,大家如果感兴趣可以参考这位大佬的文章。
drozer漏洞检测

权限

AllowBackup

android:allowBackup 是一个在 Android 应用的 AndroidManifest.xml 文件中的权限设置,用于控制应用数据是否可以被备份。这个权限通常设置在 元素内,其值可以是 true 或 false。

如果 android:allowBackup=“true”:这意味着应用的数据可以被系统备份工具(如Android的云备份服务)备份。这通常适用于用户应用,以便他们可以在设备之间或在重新安装应用时还原数据。

如果 android:allowBackup=“false”:这表示应用的数据不应该被备份。这通常适用于包含敏感信息的应用,如金融应用或安全敏感的应用,以确保用户数据不会被泄露。

在渗透测试中,android:allowBackup 的设置可能具有安全风险。如果一个应用允许备份,攻击者可以尝试访问和还原备份数据,这可能导致敏感数据泄露。因此,渗透测试人员可能会检查应用程序的 android:allowBackup 设置,以确保它们符合安全最佳实践。

如果发现应用的 android:allowBackup 设置不正确,可能需要提出安全建议或漏洞报告,以帮助应用开发者改进安全性。此外,测试人员还可以检查应用的其他数据存储和加密方法,以确保数据在备份和存储期间的安全性。
image.png
如果被设置成了true,可以用 adb backup 将应用数据导出
然后用abe 工具将导出的数据解密为 tar 压缩包文件,这样可以得到一些敏感数据。

Debuggable

android:debuggable 是一个用于 Android 应用的 AndroidManifest.xml 文件中的权限设置,用于指示应用是否可以进行调试。这个权限通常设置在 元素内,其值可以是 true 或 false。

如果 android:debuggable=“true”:这表示应用是可调试的,允许开发者使用调试工具来分析应用的运行时行为。这对于开发和调试应用程序非常有用。

如果 android:debuggable=“false”:这表示应用不应该被调试。在正式发布的应用中,通常应将 android:debuggable 设置为 false 以防止未经授权的调试操作。

在渗透测试中,android:debuggable 的设置可能具有重要的安全风险。如果应用被设置为可调试,那么攻击者可能会利用这个权限来获取敏感信息,如应用内部的数据、逻辑和密钥。因此,渗透测试人员通常会检查应用程序的 android:debuggable 设置,以确保在正式发布的应用中它被设置为 false。

如果发现应用的 android:debuggable 设置为 true,这可能是一个潜在的安全漏洞,需要向应用开发者报告,以确保在发布时设置为 false,以增强安全性。确保应用不容易被未经授权的调试是一项重要的安全措施,以防止敏感数据泄露和应用的滥用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1163042.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【从删库到跑路】详解MySQL数据库的视图以及相关操作

🎊专栏【MySQL】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 🥰欢迎并且感谢大家指出小吉的问题 文章目录 🎄视图介绍🎄视图特点🌺基本操作⭐创建视图⭐查询…

java--对象在计算机中的执行原理

1.多个对象在计算机中的执行原理 解析:首先是先回扫描(scan)class文件,加载进入方法区,然后在扫描文件内部的main方法,扫描后会在栈内存中创造一个main空间,然后继续扫描第一节创造对象的话,然后就会在方法…

金融帝国实验室(Capitalism Lab)即将隆重推出『出口公司』功能

『金融帝国实验室』(Capitalism Lab)即将迎来v10.0.00重大版本更新! 并将为〔实验性DLC〕引入全新【出口公司】功能。 ————————————— 【出口公司】允许您: >通过出口客户搜索查找全球买家; >建立…

企业如何防止文件泄密

企业如何防止文件泄密 安企神数据防泄密系统下载使用 在互联网飞速发展的时代,数据成为大多数公司的重要组成部分,数据安全则是企业的安身立命之本,管理者应当重视保密措施。企业应当采取一系列措施来防止文件泄密,以确保敏感信…

消息中间件——RabbitMQ(二)各大主流消息中间件综合对比介绍!

前言 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka&a…

Ambari-2.7.4和HDP-3.1.4安装

提示:Ambari-2.7.4和HDP-3.1.4安装 Hadoop集群安装目录 一、所需机器二、系统环境配置2.1准备2.2配置5台主机的SSH免密登录(所有机器 )2.3同步时钟,开启NTP服务(所有机器)2.4每台节点里配置FQDN&#xff0c…

10个技巧,确保项目团队按时完成任务

作为项目经理,你的绩效取决于有效的截止日期管理,以便按时交付项目。 然而,我们都知道,项目很少会按计划进行,因此,在时间和截止日期方面,能够驾驭项目中出现的众多不确定因素非常重要。本文将…

指针运算笔试题解析(1)

指针运算笔试题解析 题目一解析 题目二解析 题目三解析 题目四解析 题目五解析 题目一 #include<stdio.h> int main() {int a[5]{1,2,3,4,5};int *p(int*)(&a1);printf("%d %d",*(a1),*(p-1));return 0; } 答案&#xff1a;2 5 解析 int a[5]{1,2,3,4,5…

vscode1.83远程连接失败

&#xff08;报错信息忘记截图了 总之卡在vscode-server.tar.gz的下载那里&#xff0c;一直404&#xff0c;删了C:\Users\Administrator\.ssh\known_hosts也不管用 看了一下vscode1.83的commitID为a6606b6ca720bca780c2d3c9d4cc3966ff2eca12&#xff0c;网友说可以通过以下网…

XUnit单元测试(实用项目)——看完不会用你打我

一、简介 xUnit.net 是针对 .NET 的免费、开源单元测试框架&#xff0c;可并行测试、数据驱动测试。测试项目需要同时引用 xUnit和被测试项目&#xff0c;从而对其进行测试。测试编写完成后&#xff0c;用 Test Runner 来测试项目&#xff0c;Test Runner 可以读取测试代码&am…

最新版付费进群源码带自动定位和分销以及分站功能完整版无加密

简介 看到别人发那些不是挂羊头卖狗肉&#xff0c;要么就是发的缺少文件引流的。非常滴恶心 这源码是我付费花钱买的免费分享给大家&#xff0c;功能完整。而且无加密 功能&#xff1a;新建分销会员&#xff0c;设置账号密码&#xff0c;收款方式等 说明&#xff1a; 分站…

opengl基础笔记1

1、opengl运行模式及opengl规范 运行模式&#xff1a;核心模式与立即渲染模式&#xff08;弃用&#xff09; 由于OpenGL的大多数实现都是由显卡厂商编写的&#xff0c;当产生一个bug时通常可以通过升级显卡驱动来解决。这些驱动会包括你的显卡能支持的最新版本的OpenGL&#xf…

算法题:99.恢复二叉搜索树

&#xff08;为不影响大家的观感&#xff0c;完整题目附在了最后&#xff09; 二叉搜索树的定义 二叉搜索树&#xff08;BST&#xff0c;Binary Search Tree&#xff09;&#xff0c;也称二叉排序树或二叉查找树。 二叉搜索树&#xff1a;一棵二叉树&#xff0c;可以为空&…

二叉树题目:在二叉树中增加一行

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;在二叉树中增加一行 出处&#xff1a;623. 在二叉树中增加一行 难度 5 级 题目描述 要求 给定一个二叉树的根结…

WiFi模块的环境可持续性:可再生能源、材料创新与碳足迹管理

随着数字化时代的到来&#xff0c;WiFi模块已经成为我们日常生活和工作中不可或缺的一部分。然而&#xff0c;这种便利也伴随着对环境的一定影响。本文将深入研究WiFi模块在环境可持续性方面的挑战和机遇&#xff0c;重点关注可再生能源的应用、材料创新以及碳足迹管理。 1. 可…

NB-IoT水表和LoRa水表有什么区别?

在众多物联网技术中&#xff0c;NB-IoT和LoRa脱颖而出&#xff0c;广泛应用于智能水表的制造。那么&#xff0c;这两种水表究竟有何区别呢&#xff1f;下面&#xff0c;小编来为大家详细的讲下NB-IoT和LoRa这两者的工作原理以及两者的区别之处&#xff0c;一起来看下吧&#xf…

图片路径名动态生成

写成这样也可以 :src"./src/assets/ScreenLeft/btn${isShowLeft ? Show : Hide}.png"为了节省开销&#xff0c;这种小图标&#xff0c;可以用i标签 const imgUrl ref("icon1");<iclass"w-50px h-50px":style"{backgroundImage: url(./…

老师们看过来,成绩发布原来可以这么简单

成绩发布不再让你头大&#xff01;不再需要每次都要手动查找学生成绩&#xff0c;浪费宝贵的休息时间!现在&#xff0c;只需要掌握一些小技巧&#xff0c;就能轻松实现学生自助查询成绩&#xff01; 引入数据库管理软件 可以引入一些数据库管理软件&#xff0c;例如MySQL、Pos…

Scala 泛型编程

1. 泛型 Scala 支持类型参数化&#xff0c;使得我们能够编写泛型程序。 1.1 泛型类 Java 中使用 <> 符号来包含定义的类型参数&#xff0c;Scala 则使用 []。 class Pair[T, S](val first: T, val second: S) {override def toString: String first ":" sec…

高压放大器的作用和优势是什么

高压放大器是一种专门用于放大高电压信号的设备&#xff0c;它具有许多重要的作用和优势。在以下的文章中&#xff0c;我们将详细介绍高压放大器的作用和优势。 高压放大器的作用之一是在实验室和工程应用中提供对高压信号的放大和控制。许多应用领域&#xff0c;如实验物理、电…