请求抓包分两类,一类是移动端app进行抓包,一类是pc端的程序抓包。
移动端app抓包https
1、安卓端
第一种办法:前提是拥有该app端的组装git权限。
第1步:在组装项目的res文件夹下的xml文件夹里增加network_security_config.xml文件。
文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!-- 设置允许http明文传输-->
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<!-- 设置信任系统级别证书-->
<certificates src="system" />
<!-- 设置信任用户自定义证书,设置之后才能用fiddler之类的抓取https请求,出包最好不要设置,防止被抓包-->
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
第2步:在项目的AndroidManifest.xml文件增加
android:networkSecurityConfig="@xml/network_security_config"
这两步修改完之后,就可以进行出apk包操作。
第3步:电脑端启动自己要使用的抓包工具,Fiddler,charles等等都可以,需要注意各个工具的代理端口是多少。一般Fiddler默认8888,charles默认8080。
第4步:同http在手机抓包步骤,将生成的apk安装到移动设备,然后在设备【设置】找到对应wifi找到【代理】改为手动,选择自己电脑主机ip,及抓包工具(Fiddler、charles等等)使用的端口号,保存即可。
第5步:选择浏览器输入对应的主机ip:端口号,如172.16.7.244:8888,将证书进行下载。然后进入到移动设备的【安全与隐私】下的【凭据管理】中选择【安装证书】添加CA证书和WLAN证书,选择下载的证书文件即可。
此时就可以使用手机Apk启动抓取该apk进行的https请求了。
第二种办法:使用Apk-mitm工具,该工具是将直接将上述一系列的操作集成自动化实现了。
源码地址:https://github.com/shroudedcode/apk-mitm
apk-mitm自动化整个过程。您所要做的就是给它一个 APK文件,然后apk-mitm:
- 使用Apktool解码 APK 文件
- 替换应用程序的网络安全配置以允许用户添加证书
- 修改源代码以禁用各种证书固定实现
- 使用Apktool对修补后的 APK 文件进行编码
- 使用uber-apk-signer 对修补后的 APK 文件进行签名
您还可以使用apk-mitm对aab进行操作,并且无需对手机进行 root 操作。
前提:安装Node.js(14+)和Java(8+)
第1步:安装apk-mitm,
npm install -g apk-mitm
第2步:使用apk-mitm,
Apk-mitm 包名即可
如apk-mitm catninja-prev-release.Build188.apk
第3步:将生成的patched包安装到测试机上,重复第一种办法的3、4、5步即可。
2、PC端
- 使用wireshark工具进行抓包http。
第1步:安装wireshark之后,打开选择电脑的网络,就可以看到该网络通信的所有信息,
第2步:对该网络通信的请求进行过滤即可
输入:ip.addr == 172.16.226.153 and http
3、电脑微信小程序抓包
电脑端在微信登录的时候开启代理127.0.0.1 端口8888
Fiddler抓包配置同第一种办法的3、4、5步。不过Gateway需要配置127.0.0.1。以便于在微信登录时配置的代理抓包
4、IOS抓包
第1步:电脑端启动自己要使用的抓包工具,Fiddler,charles等等都可以,需要注意各个工具的代理端口是多少。一般Fiddler默认8888,charles默认8080。
第2步:同http在手机抓包步骤,在设备【设置】找到对应wifi找到【代理】改为手动,选择自己电脑主机ip,及抓包工具(Fiddler、charles等等)使用的端口号,保存即可。
第5步:选择浏览器输入对应的主机ip:端口号,如172.16.7.244:8888,将证书进行下载。然后安装证书即可。
此时就可以使用IOS手机上的包体启动进行抓包了。
抓包工具推荐:
Fiddler
charles:https://www.charlesproxy.com/
mitmproxy:mitmproxy - an interactive HTTPS proxy