APP信息收集思路总结(反代理,反虚拟机,反证书校验思路整理)

前言

本文是我在学习过程中的总结,希望可以被指导提议指正。

APP概况

app跟一个网站很像。

网站分为前端后端。

app就好像网站的前端一样,app不需要浏览器,而前端需要浏览器。

他们都需要服务器,也就是说,进行web渗透的理论能够拿到app渗透中来。

而对APP渗透又会多出一个对APP自身这个软件进行安全测试。

APP信息收集思路

1.从APP自身内部进行信息收集

即通过反编译,对代码进行审查从中获取有用信息

2.从APP外部进行信息收集

即通过抓包,从数据包中获取有用的信息

3.根据收集到的域名,对相关域名ip进行信息收集

内部信息收集

mobsf

通过mobsf进行APP分析。

他可以安装在服务器中,也可以使用mobexler这样的已经把他集成在其中的专门的系统中。

我这里用的是mobexler系统中的,我的服务器中也有,但是一用就死机,相对而言虚拟机中的还好一点。

 点击启动后就可以用浏览器访问他绑定的端口上传apk文件进行分析

 之后等待他分析完成就可以得到很多的APP信息。

这里面包含了服务器位置,可能出现漏洞的代码,反模拟器反***等代码。信息十分的全。

外部信息收集

抓包

但是对于APP来说,抓包相对来说还是比较困难的。

抓包主要有三个困难点:

1.反代理

2.证书校验

3.反模拟器

反模拟器

现象

现象就是我们用模拟器打开这个文件就会提示网络异常,即使我们有网络并且没有开启代理。

判断方法

我们用模拟器打开这个APP,会发现网络不可用。然后我们把它放到一个真实手机中再进行测试,如果能够正常访问,那么就说明他是屏蔽了模拟器,我们用模拟器是无法正常使用的。

(放到手机中前,尽量先用上面那个内部信息收集进行分析一下,保证没有恶意代码)

反制思路

因为我们完全可以使用真机进行测试,这些其实也没有太大的必要进行。但是以备不时之需吧。

1.尝试更换模拟器模拟的手机型号与配置

2.用真机进行测试

3.反编译他的代码,删除他判断虚拟机的代码。

反代理绕过

proxifer绕过法绕过。

常规代理检测思路

常规的代理检测大多是检测我们系统有没有开启网络代理。

而我们burp的抓包思路就是通过开启网络代理,把数据包发到哪个代理模拟服务器中,再发往目标而实现的。

这样我们就需要开启代理才能抓到包,而APP就能够检测到我们开启了网络代理。

proxifer抓包

proxifer是通过本机重定向,让数据包走到本机的其他抓包软件中,从而实现抓包。这也就是说,我们并不需要开启网络代理就可以抓包。

具体实现

我写在这篇博客中了,包含了一些案例和操作。

APP代理检测绕过------基于proxifier-CSDN博客

证书校验绕过

如果APP是https协议,那么必须在模拟器上安装好burp证书后才能进行抓包,否则就会出现burp没反应的情况。

我懒得写安装过程了,直接上我看的材料吧。

我写的这个文章的时候忽然从b站找到了这个。里面很多东西跟我这个文章很像,可以看一波。

Burpsuite--夜神模拟器抓包从入门到精通_哔哩哔哩_bilibili

证书校验的形式:

1.客户端,服务端都没有校验(无校验)

2.客户端检测,但是服务端不检测(单项校验)

3.客户端检验,服务端也检验(双向校验)

无校验的情况可以直接抓包。

单项校验

目前比较多的校验形式,检测速度比较快,不影响性能速度。

可以用Xposed(夜神中能直接搜到)配合JustMePlush绕过。

也可以反编译后删除对应的检测代码。

缺点:如果是双向校验就会失败,无法绕过。而且与双向校验的工具相冲突,使用本工具后用双向校验的工具就无法打开应用了。

双向校验

可以通过frida和r0capture进行绕过。

缺点:只能抓到发送过去的数据包,并不能对数据包进行更改。

具体操作:安卓APP反证书抓包(基于frida和r0capture[总结各种坑])_frida 抓包r0capture-CSDN博客 

后续信息收集思路

解决抓包等问题后,尤其是经过mobsf对APP的分析之后我们就解锁了APP的域名,ip等信息,可以用收集web的方法去搜集相关的信息了。

后续渗透思路

APP跟网站其实很像。

网站常用的那些xss,sql等在APP中也可能存在。

其中还有很多逻辑漏洞等。

经过了抓包之后就可以进行更多的渗透测试了。

主要渗透思路分为两大部分:

1.对域名ip资产等进行渗透测试

2.反编译,对APP本身进行逆向

结语

希望这篇文章对您有帮助。其中的案例都是我现找的,不直接截图使用我学习的视频中的案例了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

bevformer转模型经验(需要时序tranformer所有模型都可以参考)

先上bevformer的网络结构图 不难发现,他有两个输入。当前的环视图和历史bev。历史bev是通过历史环视图生成的。也就是说在生成bev特征提取模型这部分被使用了两次。在装模型时候,需要作以下工作: 1 bev特征提取模型单独提出来,转…

win多开微信

有时候需要在win下多开微信,但是微信又不支持这个功能。 正常情况下,当微信弹出登录对话框时,再次点击微信exe,此时不会再弹出一个新的微信对话框,估计微信是做了只弹一个窗的判断。但是,有时点击微信时&a…

哪本书最了解孩子?跟《米小圈上学记》一起做孩子的“引路人”!

孩子是发展中的人,需要家长的陪伴,孩子的身心发展是有规侓的,是处于发展过程中的人。我们要学会尊重孩子的发展,从兴趣出发,关注孩子的成长。但是,家长不可能无时无刻都能陪在孩子身边,他需要一…

es bulk批量操作简单实例

(1)定义 bulk允许在单个步骤中进行多次create、index、update或delete请求。 bulk与其他的请求体格式稍有不同,如下所示: { action: { metadata }}\n { request body }\n { action: { metadata }}\n { request body …

element-plus中el-table利用复选框删除当前行

思路:1.利用复选框的selection-change事件来监听复选框发生的变化,触发该事件 2.给删除添加点击事件,定义一个空数组,通过forEach()方法遍历tableData数据,使用filter()方法来过滤掉未选中行数,将过滤出来的…

java-基于springboot+vue实现的旅游信息管理系统功能介绍

开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog 项目关键技术 1、JSP技术 JSP(Java…

苍穹外卖笔记

苍穹外卖 DAY01nginx反向代理MD5加密yapi进行接口导入Swagger介绍 DAY02新增员工需求分析和设计写相关代码测试(1. 后端文档测试 2. 前后端联调代码完善 员工分页查询DAY01 02涉及到的知识 DAY01 nginx反向代理 MD5加密 拓展:spring security jwt 提供了更强大灵…

新能源汽车充电桩消防安全视频智能可视化监管建设方案

一、方案背景 据应急管理部门统计公布的数据显示,仅2023年第一季度,新能源汽车自燃率就上涨了32%,平均每天就有8辆新能源汽车发生火灾(含自燃)。在已查明起火原因中,58%源于电池问题,19%源于碰…

摘录笔记——2024年3月22日

目录 一、背景 1.1 新人的选择困局 1.2 高人才密度环境下普通员工的成长效率困局 1.3 业务发展和个人成长的二元对立困局 1.4 中年打工人低费效比引发的职场生涯终结困局 二、人的本质 2.1 人的本质的定义 2.2 由“人的本质”引出的几个关键过程 2.2.1 认知指引实践&a…

常用类一(包装类)

目录 基本数据类型的包装类 包装类基本知识 包装类的用途 自动装箱和拆箱 自动装箱: 自动拆箱: 包装类的缓存问题 基本数据类型的包装类 八种基本数据类型并不是对象,为了将基本类型数据和对象之间实现互 相转化,JDK 为每一…

【新手教程】mmselfsup训练教程及常见报错处理

mmselfsup教程 1.安装mmselfsup2.了解文件结构与配置3.训练常见报错1.报错:FileNotFoundError: [Errno 2] No such file or directory:data/imagenet/train/./train/n04311004/images/n04311004_194.JPEG2.报错:报错ImportError: /mmcv/_ext.cpython-38-…

面试官:小伙子知道synchronized的优化过程吗?我:嘚吧嘚吧嘚,面试官:出去!

写在开头 面试官:小伙子,多线程中锁用过吗? 我:那是自然! 面试官:那你知道synchronized的优化吗? 我:synchronized作为重锁,开销大,在早期不被推荐使用&…

蓝桥杯练习04学生成绩统计

学生成绩统计 介绍 随着大数据的发展,数据统计在很多应用中显得不可或缺,echarts作为一款基于JavaScript的数据可视化图表库,也成为了前端开发的必备技能,下面我们一起来用echarts开发一个学生数据统计的柱形图。 准备 开始答…

leetcode LCR121.寻找目标值-二维数组

目录 问题描述示例具体思路思路一思路二 代码实现 问题描述 m*n 的二维数组 plants 记录了园林景观的植物排布情况,具有以下特性: 每行中,每棵植物的右侧相邻植物不矮于该植物; 每列中,每棵植物的下侧相邻植物不矮于该…

狂卷java基础八股

equals和的区别 和equals都是进行一个数据的对比的。 但是如果是在进行的对象的对比的时候。 对比的就是对象的一个地址,但是equals是比较对方具体的值。 hashcode和equals 如何进行使用:靠反射。 java代理模式的实现: 静态代理&#xff1…

VMware Workstation Pro 17虚拟机超级详细搭建(含redis,nacos,docker, rabbitmq,sentinel,elasticsearch....)(一)

今天从零搭建一下虚拟机的环境,把nacos,redis等微服务组件还有数据库搭建到里面,首先看到的是我们最开始下载VMware Workstation Pro 17 之后的样子,总共一起应该有三部分因为篇幅太长了 下载地址 : VMware - Delivering a Digit…

面试题 之 react

1.说说对react的理解 1️⃣是什么 React是用于构建用户界面的 JavaScript 库,遵循组件设计模式、声明式编程范式和函数式编程概念,更高效使用虚拟 DOM 来有效地操作 DOM ,遵循从高阶组件到低阶组件的单向数据流。 react 类组件使用一个名为 render() 的方…

【每周赠书活动第1期】Python编程 从入门到实践 第3版(图灵出品)

编辑推荐 适读人群 :本书适合对Python感兴趣的所有读者阅读。 编程入门就选蟒蛇书! 【经典】Python入门经典,常居Amazon等编程类图书TOP榜 【畅销】热销全球,以12个语种发行,影响超过 250 万读者 【口碑】好评如潮…

QToolButton 设置图标变灰

1、目的 使用一张图片来实现QToolButton控件两种状态(ON和OFF状态)的图标。前提不能使用两张图片,也不能使用setEnable来图标变灰,因为当设置了false之后,控件将不能再切换了。 2、方法 知道可以通过QToolButton有s…

JDK安装卸载,path配置,JAVA_HOME配置

文章目录 卸载jdk安装jdk检查jdk安装后path和Java_home环境变量pathJAVA_HOME 卸载jdk 控制面板 —>卸载程序 选择对应的jdk右键卸载(我这里还没有jdk) 安装jdk 路径都要注意:不能有中文,不能有空格 正在安装 检查 …