app抓包

超级全:https://cloud.tencent.com/developer/article/2316324

burpsuite

配置证书有时候可以直接安装,但有时候(安卓7.0以上)我们需要将证书命名为计算出的哈希值后缀.0导入到根证书目录:/system/etc/security/cacerts 让系统默认可信任。

image-20240826185739790

httpcanary

https://blog.csdn.net/weixin_53891182/article/details/124739048

下载号apk拖到模拟器里即可

安装证书

模拟器设置里看是否是root模式

image-20240826191939957

httpcanary设置-》SSL证书设置-》导出根证书-》.0(root)/.pem文件(未root)(直接用他装也可以,不一定要导出)

但.0的证书在收集的设置里是导不进去的,我们选择pem

手机设置,然后 找到并点击“安全”–>“更多安全设置”–>凭据储存下的“从手机储存安装”–>CA证书(不同手机系统这步可能不完全相同,但都大同小异按这几个关键词找一下或者直接搜索)
image-20240826192725429

安装完成后,可以在用户凭据里看到看到,感觉没有哪个.0不一定抓的全,但也能抓到就是了

image-20240826193028584

image-20240826193403755

还是用adb传上去把

# 打开adb 脚本
adb shell
# 挂载磁盘
mount -o rw,remount /system
# 切换至证书目录
cd /data/misc/user/0/cacerts-added/
# 查看证书是否存在
ls
# 复制证书
cp 证书 /system/etc/security/cacerts/
# 退出adb脚本
exit
# adb拿证书
adb pull /data/misc/user/0/cacerts-added/证书
# adb存证书
adb push 证书 /system/etc/security/cacerts/

image-20240826193935083

这里我发现他已经装好了,那就不一步一步试了

Charles

https://blog.csdn.net/qq_45005145/article/details/141132846

注册码生成:https://inused.github.io/pages/file/tool/CharlesKeygen.html

抓本地的包,我就不演示了,演示下抓手机的包把

设置代理,在 Proxy — Proxy Settings ( 注意:此时我的Windows Proxy是去掉对勾的,因为这里我是想在PC端抓手机端的包,所以没必要打开电脑的本地代理 )

image-20240826200516422

填入代理端口 4444(或者自定义,但不能和系统已占用端口冲突),并且勾上 Support HTTP/2Enable transparent HTTP proxying ,点击右下角 OK 即可

然后分别在 PC 端和手机端安装证书 选择 Help — SSL Proxying — Install Charles Root Certificate 就可以下载安装上 PC 端了

image-20240826200611104

PC的就是当前用户,受信任的证书颁发机构

接下来再给手机端安装证书,步骤如下: 选择 Help — SSL Proxying — Install Charles Root Certificate on a Mobile Device or Remote Browser

image-20240826200807747

然后把代理设置成这个,这里敲错了,应该是147的

image-20240826200912923

image-20240826201156943

访问http://chls.pro/ssl下载证书

image-20240826201221043

然后和httpcanary一样,在手机里安装即可

image-20240826201511738

它也是安装在 用户 那里,但是由于我的设备是已经 root 了,要把这个证书安装在 系统 那里才能进行抓取 HTTPS 流量,但我这里好像已经行抓了,不懂为什么,移动的方法可以用MT也可以用ADB

image-20240826201647783

charles还可以结合上burp使用

image-20240826202251100

image-20240826203351466

有时候包会放的特别慢,可能是开了这个,关掉就就好

image-20240826203423156

Postern + Charles + BP

在实际抓手机 App 包场景中,有很多种方案,经典的就是 FiddlerBurpsuite ,但是 FiddlerBurpsuite 会遇到一个问题,如果 App 为了防止中间人抓包,特意设置了不走代理这个选项,那单独直接用 FiddlerBurpsuite 这些抓包工具就不能抓包的,那总不可能说不能抓包就认为目标系统很安全吧?为了抓到完整的包,于是就衍生出 Postern + Charles 这个组合,是因为 Charles 没有直接监听到 App,Charles 是监听到了 Postern 上,Postern 就是一个VPN ,所以 App 设置不走代理也没用,它是通过 VPN 将所有流量转发到 Charles 的 socks 代理,再打开 Charles 的 External Proxy Server — (外部代理服务器)转发到 Burpsuite,从而实施中间人抓包

配置Charles

在 Proxy — Proxy Settings ,勾选 Enable SOCKS proxy 进行设置 SOCKS 代理(按照下图的操作),端口号我这里设置8889(或者自定义,但不能和系统已占用端口冲突)

image-20240827163623622

配置postern

左上角-》配置代理

image-20240827173046030

配置规则

image-20240827173127006

然后开启vpn,一般第一次连上会弹出这个,点击allow即可

image-20240827173222290

image-20240827172605055

有时候抓包不成功,可能是规则太多了,要把那些删了,或者说调整规则顺序

小程序抓包

Proxfier+Burp+PC端wechat

配置proxfier

首先需要找到微信小程序的运行文件 WeChatAppEx 的物理路径,然后把此文件添加到 Proxifier 的代理规则中。这里多说一下,如果也想要抓取微信内置浏览器的数据包的话,需要找到 WechatBrowser 的物理路径。找这两个的文件的物理路径可以通过任务管理器来找到。比如小程序 WeChatAppEx 文件,首先打开任意一个小程序,打开任务管理器找到以小程序命名的进程名称 ,右键打开文件所在的位置来确定其物理路径,这里以打开欢乐斗地主为例,如下图。使用微信内置浏览器打开任意网页,用同样的方法可以找到 WechatBrowser 的物理路径。

WeChatAppEx  默认路径:%%%Roaming\Tencent\WeChat\XPlugin\Plugins\RadiumWMPF\11253\extracted\runtime(不一定是11253,这个数字会有差异)
WechatBrowser默认路径:%appdata%\Tencent\WeChat\XPlugin\Plugins\XWeb\920\extracted (不一定是920,这个数字会有差异)
但一定都是在%appdata%\Tencent\WeChat\XPlugin\Plugins这个文件夹下

对于找路径其实有个更简单的方法,就是使用 everything 这个搜索软件直接搜索 WeChatAppEx 和 WechatBrowser 文件,直接找到其物理路径。默认情况下都是只有一个的,如果有多个的话,需要用上述方法去确认一下具体使用的是哪个。

Proxifier 配置:开启 HTTP 代理配置功能,这个设置默认是关闭的。

image-20240902233447748

image-20240902233459391

配置代理服务器:端口保持和 burpsuite 的监听端口一致就行,下面协议选择 https 。

image-20240902233659535

image-20240902233605870

配置代理规则:按照下图的数字顺序进行操作,点击第3步之后定位到上面的物理路径,选择 WeChatAppEx 或 WechatBrowser 的可执行文件 。一定要记得点两个OK按钮进行保存设置。

image-20240902233715780

image-20240902233754844

这里有个小技巧,就是在测试过程中很多时候都是不想抓取baidu.com、qq.com等这类的域名流量,一旦这类的数据包很多的话,很影响测试。所以可以加个规则,让这类的域名或IP直接直连,从而不走设置的代理,这样就能减少好多无用数据包,方便测试。

另一个注意的点就是多个规则的排序问题了。选中一个规则后,使用右边的按钮可以进行调整顺序,类似于优先级。如果设置了上步不走代理的规则,一定要保证这个规则是在微信小程序规则的上面,要不然等同于没设置。

设置完之后就可以正常的使用burpsuite抓取小程序的数据包了。在使用 Proxifier 这个代理软件的同时,尽量不要去使用其他的V2、SSR等代理软件,以免发生冲突。

BP

image-20240902233900901

image-20240902234013677

如果抓不到可能是走了代理,去network里把use socks proxy关了

image-20240902234045386