【Frida】【Android】 工具篇:ProxyPin抓包详解

🛫 系列文章导航

  • 【Frida】【Android】01_手把手教你环境搭建 https://blog.csdn.net/kinghzking/article/details/136986950
  • 【Frida】【Android】02_JAVA层HOOK https://blog.csdn.net/kinghzking/article/details/137008446
  • 【Frida】【Android】03_RPC https://blog.csdn.net/kinghzking/article/details/137050967
  • 【Frida】【Android】04_Objection安装和使用 https://blog.csdn.net/kinghzking/article/details/137071768
  • 【Frida】【Android】05_Objection实战 https://blog.csdn.net/kinghzking/article/details/137071826
  • 【Frida】【Android】 06_夜神模拟器中间人抓包 https://blog.csdn.net/kinghzking/article/details/137162859
  • 【Frida】【Android】 07_爬虫之网络通信库HttpURLConnection https://blog.csdn.net/kinghzking/article/details/137211973
  • 【Frida】【Android】 08_爬虫之网络通信库okhttp3 https://blog.csdn.net/kinghzking/article/details/137227041
  • 【Frida】【Android】 09_爬虫之Socket https://blog.csdn.net/kinghzking/article/details/137284648
  • 【Frida】【Android】 工具篇:ZenTracer https://blog.csdn.net/kinghzking/article/details/137284648

▒ 目录 ▒

    • 🛫 系列文章导航
    • 🛫 导读
      • 开发环境
    • 1️⃣ ProxyPin介绍
      • 主要特性
      • 工作原理
      • “用户证书”vs“系统证书”
    • 2️⃣ 安裝和使用
      • 安裝
      • 安裝证书
      • 启动HTTPS代理
      • 启动抓包
      • 验证
    • 3️⃣ 竞品介绍
      • reqable
      • HttpCanary(小黄鸟)【不推荐】
    • 🛬 文章小结
    • 📖 参考资料

🛫 导读

开发环境

版本号描述
文章日期2024-03-24
操作系统Win11 - 22H222621.2715
node -vv20.10.0
npm -v10.2.3
夜神模拟器7.0.5.8
Android9
python3.9.9
frida16.2.1
frida-tools12.3.0
objection1.11.0
ProxyPin1.0.9

1️⃣ ProxyPin介绍

ProxyPin是一种基于MITM(中间人攻击)的抓包工具,主要用于移动应用程序的安全测试和调试。下面是关于ProxyPin的详解。

主要特性

  • HTTP/HTTPS抓包:ProxyPin可以拦截并解析HTTP和HTTPS协议下的数据包,包括请求和响应内容。
  • 数据篡改:用户可以在抓包过程中修改请求和响应数据,从而进行相关的安全测试。
  • WebSocket支持:除了HTTP/HTTPS,ProxyPin还支持WebSocket协议的抓包和分析。
  • 脚本扩展:用户可以编写脚本来扩展ProxyPin的功能,实现自定义的数据处理和分析。

工作原理

  • 中间人攻击(MITM):ProxyPin通过将自己伪装成目标服务器与客户端通信,从而使得所有的数据流经ProxyPin,实现抓包和修改数据的目的。
  • SSL/TLS解密:ProxyPin可以解密通过SSL/TLS加密的数据流量,这使得用户可以查看和分析应用程序中的加密通信内容。

ps: 具体原理可以参考系列文章之《【Frida】【Android】 06_夜神模拟器中间人抓包 https://blog.csdn.net/kinghzking/article/details/137162859》

“用户证书”vs“系统证书”

Android证书分为“用户证书”和“系统证书”两种,在设置->安全->"查看安全证书"列表中,可以看到“系统”和“用户”两个Tab。用户通过浏览器下载安装或者通过WLAN高级设置安装的证书均为用户证书。

安装为系统证书有什么好处呢?

  • 安装用户证书必须要设置开机密码,而且设置后就不能取消,除非先删掉所有的用户证书。如果安装为系统证书就不需要设置开机密码,自动化操作时更方便。

  • Android 7以上版本APP默认不信任用户证书,只信任系统证书,安装为用户证书,对APP的HTTPS抓包会失败。安装为全局证书才能被所有APP信任,方可进行HTTPS抓包。

2️⃣ 安裝和使用

安裝

  • 下载
    从github官网(https://github.com/wanghongenpin/network_proxy_flutter/releases)下载,目前最新是1.0.9,我们使用的是模拟器,所以需要下载ProxyPin-Android.apk
    在这里插入图片描述
  • 安装
    直接拖入模拟器就可以了,打开后如下所示:
    在这里插入图片描述

安裝证书

  • 打开HTTPS代理页面
    如下图,点击右上角三个点,然后点击HTTPS代理
    在这里插入图片描述
    最后将显示如下界面,包含“用户证书”和“系统证书”
    在这里插入图片描述
  • 下载系统证书
    点击上图中的下载系统根证书按钮,在下载页面,将其保存下来即可。
    在这里插入图片描述
  • 安装系统根证书
  1. 打开Amaze
    在这里插入图片描述
  2. 授权超级用户权限
    在这里插入图片描述
  3. 复制系统根证书
    切换到Download目录,选择系统根证书文件,点击复制菜单
    在这里插入图片描述
  4. 拷贝系统根证书
    切换到/system/etc/security/cacerts目录(点击左侧根目录,然后依次选择etc、security、cacerts目录),最后点击如下图的粘贴按钮即可。
    在这里插入图片描述
  5. 授权证书文件
    adb shell连接安卓,然后执行下面命令:
mount -o remount,rw /system
chmod 777 /etc/security/cacerts/*
mount -o remount,ro /system
  1. 验证系统证书
    在设置中,搜索信任的凭据,在系统tab中,可以找到ProxyPin证书,表示安装成功。
    在这里插入图片描述

启动HTTPS代理

回到ProxyPin软件,打开HTTPS代理页面,如下所示开启HTTPS代理
在这里插入图片描述

启动抓包

回到ProxyPin软件主页面,点击右下角“播放”按钮
在这里插入图片描述
在弹出窗口中点击确定
在这里插入图片描述

验证

此时,我们以浏览器,百度页面为例,可以看到已经可以抓到封包了。
在这里插入图片描述

3️⃣ 竞品介绍

Android抓包有很多竞品软件,这里介绍一下大名鼎鼎的“小黄鸟”及其新品reqable。

reqable

reqable是小黄鸟的进阶版,依然不开源,不过有了官网 https://reqable.com/,更靠谱一些了。
支持各个平台,个人感觉该软件比ProxyPin更好用。
下面是部分软件截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

HttpCanary(小黄鸟)【不推荐】

抓包的都知道小黄鸟,但是小黄鸟的解锁版版本很多,由于其不开源,网上很多版本是魔改的,有兼容性问题。不过小编多次测试,其依然可用的。

有兴趣的可以直接参考文章:《[Android 分享] 小黄鸟HttpCanary抓包 5个版本 都是解锁版 + 证书安装教程。https://www.52pojie.cn/thread-1592529-1-1.html》,这里不做过多介绍了。

🛬 文章小结

ProxyPin还有很多功能,这里不一一演示了,以后有机会在实战中进行讲解。

  • ProxyPin可以过滤域名和APP,方便抓包使用
  • ProxyPin可以将结果打包成har文件,在chrome中导入,方便分析结果
  • ProxyPin可以重写请求,直接在Android上进行封包修改
  • ProxyPin可以使用脚本,灵活控制封包。

ps: 不要同时开启多个抓包软件,避免冲突

📖 参考资料

  • ProxyPin官网:https://github.com/wanghongenpin/network_proxy_flutter
  • reqable(小黃鸟新名字)官网 https://reqable.com/
  • 添加Fiddler/Mitmproxy证书为安卓系统证书 https://blog.csdn.net/epson615/article/details/120586471
  • objection地址:https://github.com/sensepost/objection

ps: 文章中内容仅用于技术交流,请勿用于违规违法行为。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【漏洞复现】某科技X2Modbus网关多个漏洞

漏洞描述 最近某科技X2Modbus网关出了一个GetUser的信息泄露的漏洞,但是经过审计发现该系统80%以上的接口均是未授权的,没有添加相应的鉴权机制,以下列举多个未授权接口以及获取相关敏感信息的接口。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律…

解决element-plus table组件 fixed=“right“(left)浮动后横向滚动文字穿透的问题

BUG 版本:element-plus 2.6.1 浏览器:360极速浏览器22.1 (Chromium内核) 组件:el-table组件 问题:在头部/尾部浮动加上斑马条纹后,横向滚动存在文字穿透的问题。具体如图: 白色背景行的文字&#xff0c…

《Ubuntu20.04环境下的ROS进阶学习6》

一、手持激光雷达建图 在上次的学习中我们已经使用hector_Mapping在仿真环境下建图了,那么本节我们将拿出真实雷达做一次室内的建图。我们使用的是思岚的S2L激光雷达。 二、下载思岚的应用手册 首先我们根据自己的激光雷达类型去到思岚官网下载相应的ROS包&#xff…

成都源聚达:抖音小店押金收费标准

在数字浪潮中,抖音小店如星辰般熠熠生辉,吸引了无数商家和创业者。然而,想要在这片星海中畅游,首先得了解其押金的收费标准。正如古人言:“无规矩不成方圆”,明确规则是成功的关键一步。 抖音小店的押金制度…

CSS-属性

📚详见 W3scholl,本篇只做快速思维索引。 CSS 背景 用于定义元素的背景效果。 background-colorbackground-imagebackground-positionbackground-repeatbackground-attachment background-color background-color 属性指定元素的背景色。 h1 {back…

mysql的安装和部署

##官网下载mysql 我下载的是一个mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz 可以通过xshell 或者xftp传送 xshell则是先下载一个lrzsz 执行以下的命令 yum install lrzsz -y #安装好我下面有个一键安装的脚本 #!/bin/bash#解决软件的依赖关系 yum install cmake ncurses…

Redis 客户端

Redis 客户端 客户端-服务器结构 Redis 同 Mysql 一样,也是一个客户端-服务器结构的程序,结构如下图: 注:Redis 客户端和服务器可以在同一个主机上,也可以在不同主机上 Redis 客户端的多种形态 自带的命令行客户端&…

通过 Cookie、Redis共享Session 和 Spring 拦截器技术,实现对用户登录状态的持有和清理(三)

本篇内容对应 “2.4 生成验证码” 小节 和 “4.7 优化登陆模块”小节 视频链接 1 Kaptcha介绍 Kaotcga是一个生成验证码的工具。 你的网站验证码是什么? 在我们这个牛客论坛项目,验证码分为两部分 给用户看的是图片,用户根据图片上显示的…

RTX RTOS 操作实例分析之---线程(thread)

0 Preface/Foreword 1 线程(thread) 1.1 线程定义 1.1.1 USE_BASIC_THREADS(宏定义) 经过以上步骤(makefile包含),USE_BASIC_THREADS在编译阶段被定义到相应的模块中。 1.1.2 定义线程ID变量…

Mysql中的 IFNULL 函数的详解

Mysql中的 IFNULL 函数的详解 概念 在mysql中IFNULL() 函数用于判断第一个表达式是否为 NULL,如果第一个值不为NULL就执行第一个值。第一个值为 NULL 则返回第二个参数的值。 语法 IFNULL(a, b)Demo 举例说明 创建表 create table student_one( sno varchar(20)…

Three.js阴影贴图

生成阴影贴图的步骤如下: 从光位置视点(阴影相机)创建深度图。从相机的角度进行屏幕渲染在每个像素点,将阴影相机的MVP矩阵计算出的深度值与深度图值进行比较如果深度图值较低,则说明该像素点存在阴影 ,因…

【前端Vue】社交信息头条项目完整笔记第3篇:三、个人中心,TabBar 处理【附代码文档】

社交媒体-信息头条项目完整开发笔记完整教程(附代码资料)主要内容讲述:一、项目初始化使用 Vue CLI 创建项目,加入 Git 版本管理,调整初始目录结构,导入图标素材,引入 Vant 组件库,移动端 REM 适配。二、登录注册准备,实现基本登录功能,登录状…

cesium entity默认的点击事件

一、单击事件 点击entity,屏幕出现一个绿色的框,不想显示这个绿色框有两个办法 1、在创建viewer的时候,设置selectionIndicator为false // 初始化地图容器viewer new Cesium.Viewer(cesiumContainer, {contextOptions: {webgl: {alpha: tru…

Linux 常用指令及其理论知识

个人主页:仍有未知等待探索-CSDN博客 专题分栏:http://t.csdnimg.cn/Tvyou 欢迎各位指教!!! 目录 一、理论知识 二、基础指令 1、ls指令(列出该目录下的所有子目录和文件) 语法: …

学习vue3第十四节 Teleport 内置组件介绍

<Teleport></Teleport> 作用目的&#xff1a; 用于将指定的组件或者元素传送到指定的位置&#xff1b; 通常是自定义的全局通用弹窗&#xff0c;绑定到 body 上&#xff0c;而不是在当前元素上面&#xff1b; 使用方法&#xff1a; 接收两个参数 to: 要将目标传…

【热门话题】Stable Diffusion:本地部署教程

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Stable Diffusion&#xff1a;本地部署教程一、引言二、环境准备1. 硬件配置2. …

java爬虫入门程序

<!--爬虫仅支持1.8版本的jdk--> <!-- 爬虫需要的依赖--> <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.2</version> </dependency><!-- 爬虫需…

二分答案 蓝桥杯 2022 省A 青蛙过河

有些地方需要解释&#xff1a; 1.从学校到家和从家到学校&#xff0c;跳跃都是一样的&#xff0c;直接看作2*x次过河就可以。 2.对于一个跳跃能力 y&#xff0c;青蛙能跳过河 2x 次&#xff0c;当且仅当对于每个长度为 y 的区间&#xff0c;这个区间内 h 的和都大于等于…

NIO基础知识

在学习Netty之前先要学习一下NIO相关的知识&#xff0c;因为Netty是基于NIO搭建的一套网络编程框架。 一. NIO 基础 non-blocking io 非阻塞 IO 1. 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream&#xff0c;它就是读写数据的双向通道&#xff0c;可以从…

多态.Java

&#xff08;1&#xff09;什么是多态&#xff1f; 同类型的对象&#xff0c;表现出不同的形态。前者指父类&#xff0c;后者指不同的子类 说简单点&#xff0c;就是父类的同一种方法&#xff0c;可以在不同子类中表现出不同的状态&#xff0c;或者说在不同子类中可以实现不同…