惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
月光博客
月光博客
雷峰网
雷峰网
WordPress大学
WordPress大学
博客园 - 司徒正美
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
H
Help Net Security
Engineering at Meta
Engineering at Meta
Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security @ Cisco Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
爱范儿
爱范儿
W
WeLiveSecurity
J
Java Code Geeks
Forbes - Security
Forbes - Security
H
Hacker News: Front Page
T
Threatpost
The Cloudflare Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
N
Netflix TechBlog - Medium
Latest news
Latest news
V2EX - 技术
V2EX - 技术
小众软件
小众软件
T
The Blog of Author Tim Ferriss
A
Arctic Wolf
B
Blog RSS Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
C
Check Point Blog
N
News | PayPal Newsroom
Cyberwarzone
Cyberwarzone
V
V2EX
TaoSecurity Blog
TaoSecurity Blog
P
Privacy & Cybersecurity Law Blog
Microsoft Security Blog
Microsoft Security Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
D
DataBreaches.Net
F
Fortinet All Blogs
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
IT之家
IT之家
K
Kaspersky official blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Google DeepMind News
Google DeepMind News
C
CXSECURITY Database RSS Feed - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com

mephisto.cc

修复rime-ice无法弹出候选框的问题 开机滚动字体显示优化 个人网站安全防护 树莓派上部署Vaultwarden 使用goaccess实时分析Caddy日志 个人网站监控 Hugo全站AVIF记 Linux下尝试使用Godot开发小游戏 Arch linux dae 透明代理 Airflow接管galler-dl下载任务 如何使用gallery-dl批量下载图像 Arch核显下如何愉快玩Dota2和CS2 Arch/labwc 环境网络相关设置 Rime添加dota2词库 Arch 重装记录 Supertuxkart iOS版终于发布了 打造自己的流媒体音乐服务 剪切板管理工具clipcat推荐 MangoHud性能监控 微信小程序开发记 Rofi试用 解决Arch下VSCode无法输入中文的问题 独立窗口管理器下无法录屏问题处理 上海市二手房成交数据监控 OpenLDAP监控 Arch linux如何顺畅连接蓝牙设备 使用Git和Ansible管理配置文件 Arch Linux SSL VPN 客户端配置 简单获取celery任务实时结果 Arch linux下iNode客户端的安装和使用方法 券商费率调整记 迷你主机组装记 Labwc更换定制皮肤 树莓派跑分流代理 实用自动代理配置示例 九年老鼠标复活记 Openvpn示例 Mac下如何旋转webp图片 如何隐藏Vscode中Markdown PDF插件的头部内容 解决Linux下网络配置无法变更保存的问题 labwc环境启用wlogout Ubuntu下新官方微信尝鲜 简单检测用户是否开启广告屏蔽 Atuin ZFS下卡顿问题解决 Wine安装64位微信 Fish 和 Atuin使用记 Fastapi简单实现临时下载链接 Fastapi微信公众号开发简要 Hugo根据语种展示不同内容 如何修复Waybar微信图标错误 信封加密简要 Linux环境下维护公众号记录 快速隐藏和呼出终端 Wayland环境自动切换壁纸 SuperTuxKart 试玩 简单抓取雪球股票快讯 为什么你的kill命令不能列出信号表 Wine安装微信保姆教程 Hysteria科学上网简要 Ubuntu 23.10 钉钉无法启动解决方法 网站导航栏防止插入Adsense自动广告 Linux环境按键检测 Hugo文末添加最后修改时间 Wayland环境ksnip无法复制问题解决 我眼中的股票市场 Caddy简单图片防盗链 greetd和regreet使用教程 Wayland环境下截图加后期修改 Wayland 环境下gif录屏 Firefox的一些有趣功能 Ubuntu 切换系统语言 Firefox 标题栏高度调整 网站添加回到顶部功能 Hugo自定义字体 Labwc 便捷配置 Wofi使用教程 窗口管理器labwc使用记 文件共享软件Dufs推荐 Hugo静态站点接入Adsense广告 Fcitx5配置详解 Ubuntu安装chrome的方法总结 一种Xterm.js的全屏方案 Google网址收录api Python示例 手机听离线音乐 Snipe it资产导入 应用启动器yofi使用配置 Snipe it资产管理系统安装使用 Ubuntu开机启动加速 Vue3 vite TypeScript跨域等相关设置 Ubuntu手动升级Libreoffice Ubuntu设置alacritty为默认终端 简体文章批量转换为繁体 使用Inkscape调整svg图片大小 实用命令 Python中rstrip方法细解 Github同主机多仓库部署deploy key问题处理 Linux安装最新版本Python KeePassXC使用教程 Ubuntu 22.10连接蓝牙耳机报错br-connection-profile-unavailable解决方法 Caddy日志配置轮转和格式化
使用mitmproxy给手机app抓包
2022-11-16 · via mephisto.cc

工作中经常需要抓取手机 app 的网络报文,比方说某个图片无法访问的问题,只在手机 app 端出现,web 端正常。这个时候你需要抓包快速定位问题原因,通常的操作都是在电脑上面安装个抓包软件用作代理,手机设置连接这个代理,这样手机的网络报文会经过抓包软件,自然就可抓取解析报文细节了。掌握了网络报文细节,就好像 chrome 的调试工具一样,一切无所遁形。

常见的抓包软件为 Charles、Fiddler、Wireshark 等,Charles 和 Fiddler 都是收费软件,Wireshark 适合较底层的网络报文分析,本文推荐 mitmproxy 是个开软件(MIT License), 不用花钱也够用,看 github 的贡献记录这软件是 2016 年才活跃发力。

有必要介绍下名字,mitm 表示 Man-in-the-middle attack(中间人攻击),proxy 即代理,组合起来 mitmproxy,这样更加便于记住。

1. 安装

  • 最简单的安装方式,因为是 python 编写的,可直接 pip 安装(推荐 pip 安装,省事):

Linux 用户可以直接去官网下载压缩包,解压即可。

2. 简介

安装完成后,包含三个工具

  • mitmproxy gives you an interactive command-line interface

    命令行界面(CUI?),可以在终端上面完成各种操作。

  • mitmweb gives you a browser-based GUI

    Web 图形界面,类似 chrome 的调试界面,不喜欢命令行的个人建议使用这个

  • mitmdump gives you non-interactive terminal output

    命令行工具,可以简单理解为 tcpdump 类似的工具

3. 搭建抓包环境

环境图示:

how mitmproxy works

电脑上启动 mitmproxy 或者 mitmweb,直接输入命令启动,默认 8080 全网卡监听:

1➜  ~ ss -lnt |grep 8080
2LISTEN 0      100          0.0.0.0:8080       0.0.0.0:*
3LISTEN 0      100             [::]:8080          [::]:*

手机端连接 WiFi,找到代理设置的地方,填上电脑 ip 和 port,意思就是手机访问网络的时候,流量会走代理(即电脑上的 ip:port 服务),这样代理软件才能解析处理。

要点

现在手机 app 大部分都使用 https 了,这涉及到信任证书的问题。 以 iOS 为例,WiFi 设置好代理后,浏览器访问 mitm.it,这个网址 http://mitm.it/,根据页面上面的指引下载对应平台的证书。

CA certificate

安装好证书后(不会安装网上搜下),一定要注意,新版的 iOS 系统还要选择完全信任(这一步很关键,Settings > General > About > Certificate Trust Settings 这样设置)。英文说明如下:

On recent iOS versions you also need to enable full trust for the mitmproxy root certificate:

Go to Settings > General > About > Certificate Trust Settings. Under “Enable full trust for root certificates”, turn on trust for the mitmproxy certificate.

不这样的设置的话,部分 https 流量可能无法分析,握手阶段证书校验不会成功,连接断开。

设置好环境后,即可开始抓包了,手机上开启目标 App,点击后抓包软件就会刷新报文列。

三种方式示例如下:

  • mitmproxy

启动,直接输入命令:

命令行界面如图所示,抓取的 B 站。

mitmproxy cui

上方为报文信息,下方为命令指引,报文列移动貌似支持 vim 快捷键(gg G 等),按 Enter 进入详情页,q 退出,也支持鼠标点击,稍微摸索下就会用了,不多解释。

  • mitmweb

启动,直接输入命令:

会直接开启个浏览器 tab 页,抓取的手机微信。

mitmweb gui

点击报文列,右侧界面会显示请求头、反回头等信息。

mitmweb detail
  • mitmdump

这个感觉有 tcpdump,暂时用不到,需要使用的可以去翻看下官方文档。