使用mitmproxy抓取APP数据



使用mitmproxy抓取APP数据


mitmproxy是什么?

mitmproxy(Man-In-The-Middle Proxy) 是一个功能强大的 开源 HTTP/HTTPS 抓包工具,可以拦截、修改、重放和分析网络流量。

适用于:

  • 抓取网页、APP 的 API 请求(包括 HTTPS)。
  • 修改 HTTP/HTTPS 请求(比如篡改 APP 数据)。
  • 绕过 HTTPS 加密,查看加密流量内容。
  • 自动化抓包(支持 Python 脚本)。


安装&运行

通过官网的链接下载安装:https://mitmproxy.org/

或微信搜一搜 sddsxck 关注公众号在公众号内发送 100005 下载


安装完成后,在 bin 下,可以看到三个可执行文件,分别对应 mitmproxy 的三种模式

在这里插入图片描述

mitmproxy.exe(终端模式)

  • 交互式命令行界面,可以实时查看、修改、重放 HTTP/HTTPS 请求。
  • 适合调试 API,适合喜欢 CLI 的用户。
  • 启动方式 mitmproxy -p 8080

mitmweb.exe(图形化界面)

  • 提供 Web UI,在浏览器里查看流量,更直观。
  • 适合不喜欢命令行的用户,推荐新手使用。
  • 启动方式 mitmweb -p 8080
  • 运行后,打开 http://127.0.0.1:8081/ 查看界面。

mitmdump.exe(脚本模式)

  • 命令行模式,支持 Python 自动化脚本处理 HTTP/HTTPS 流量。
  • 适合编写爬虫、自动化抓包和数据分析。
  • 启动方式(运行自定义脚本):mitmdump -p 8080 -s myscript.py

直接双击运行默认代理端口 8080,我打开的是 mitmweb.exe



配置手机代理


手机和mitmproxy同一网络

确保手机和当前 mitmproxy 所在运行的电脑处于同一网络下,如果电脑有无线网卡,可以开热点,手机连接。


查看电脑ip地址,可以直接打开命令行,输入 ipconfig 查看

然后在手机WIFI设置里,设置当前网络代理,主机名为电脑ip地址,端口填mitmproxy的端口(没设置就是8080)

确认后手机的请求就会经过电脑的8080端口了,我打开的mitmweb.exe,所以可以直接在浏览器中查看
在这里插入图片描述


安装证书

现在基本上很少有纯http的应用了,基本上都使用 https,所以要安装证书让代理可以解密数据。

Windows系统,在用户目录中的 .mitmproxy 文件夹找到 mitmproxy-ca.p12 并双击安装证书,一直下一步就可以了(密码可以不需要),在证书存储部分,选择将所有的证书都放入下列存储 - 受信任的根证书颁发机构

在这里插入图片描述



手机安装证书

使用的 mitmweb,在配置完手机代理后,在手机浏览器输入 http://mitm.it 进入到下方界面

在这里插入图片描述

点击手机系统对应的 Get mitmproxy-ca-cert… 下载证书

小米自带浏览器下载一直是连接中,下载一个其他的浏览器下载就好了

下载完后,安装证书,不同手机方式不一样

例如红米note:设置 - 安全 - 更多安全设置 - 更多安全设置 - 加密与凭证 - 安装证书 - CA证书 中选择安装


需要注意的是,Android版本大于7,那么安装的证书是用户证书,并且在Android7.0开始,用户证书不被信任,所以需要安装系统证书(需要手机Root),如果APP可以在模拟器中运行那么就使用模拟器,不行的话只能另寻他法。



逍遥模拟器 & Root安装证书

模拟器可以直接Root,我这里使用逍遥模拟器,按照上面的步骤,在模拟器内设置代理,下载证书。

如果因为设置代理,模拟器无法下载,可以在 mitmproxy 网页中,点击 options,勾选Don’t verify server certificates…或者关闭代理下载完后开启

模拟器内下载完证书后,点击右边共享

在这里插入图片描述


点击下载共享路径的窗口图标,打开windows的文件夹,可以看到,下载的证书就在这个文件夹中

在这里插入图片描述


打开命令行,进入逍遥模拟器安装目录,输入以下命令

# adb连接逍遥模拟器
adb connect 127.0.0.1:21503
# 开启写入模式(需要模拟器设置中使用的是独立系统盘,否则开启失败)
adb remount

看到 remount succeeded 就成功了


然后需要下载openssl,获取证书的hash值

下载链接:https://slproweb.com/products/Win32OpenSSL.html

或微信搜一搜 sddsxck 关注公众号在公众号内发送 100005 下载

下载安装后,默认在 C:\Program Files\OpenSSL-Win64\bin,将此路径加入path

然后打开命令行,进入证书文件夹,输入以下命令获取

openssl x509 -subject_hash_old -in 证书文件

在这里插入图片描述

复制第一行的 c8750f0d,这个就是证书要更改的名称,将证书复制一份,重命名为 c8750f0d.0 后缀是 .0

然后将其放到模拟器下载目录,在模拟器中打开下载目录(共享 - 安卓那个按钮),勾选这个文件

在这里插入图片描述


然后点击左上角的菜单按钮,系统文件夹,etc/security/cacerts,点击右上角文件夹,粘贴选择项。

然后需要输入以下命令,给证书文件设置权限,使用上面打开的命令行

输入 adb shell 进入模拟器命令行,输入 su 获取权限,然后输入以下命令设置文件权限

chmod 644 /system/etc/security/cacerts/c8750f0d.0

然后可以在模拟器的设置 - 安全性和位置信息 - 加密与凭证 - 信任的凭据中看到系统证书中已经加入完成了。

在这里插入图片描述


这样,就可以监听到APP应用的数据了。




END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HackShendi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值