Lxn-Chan!

(~ ̄▽ ̄)→))* ̄▽ ̄*)o

本文研究了目前可行的APP抓包方式。

思路

根据设备/操作系统的不同,获取数据的方式也不尽相同。大概的方法基本上就是作为中间人拦截并分析或直接对APP本身拆包反工程分析。其中作为中间人的方式有构建VPN、安装虚拟网卡和构建HTTP/SOCKS代理,其中如需解密HTTPS数据则还需要在目标设备安装中间证书。

另外某些APP为了提升数据保护等级,会在数据接口上添加各种混淆或加密,这种情况下与抓包基本没什么关系了,因为即便抓到数据包并解除HTTPS加密也无法获得数据,点名批评okhttp

Windows

Windows通常比较简单,大部分应用都会主动走在系统设置的代理,例如Charle利用的就是该原理;若有一部分应用不遵守系统代理,也可以通过VPN或安装虚拟网卡作为出口来拦截数据。

iOS

iOS平台安装系统级证书并信任后所有应用都可以抓到HTTPS数据,基本没什么难度。

Android

Android平台情况较为复杂,首先Android 7.0及以上版本应用除浏览器外默认不再信任用户安装的根证书,这就无法在Android平台上抓取HTTPS数据包,当然解决办法也是有的,通过安装Xposed或Root后可以将自签根证书放进系统根证书列表;其次就是新应用可能默认开启证书锁定SSL Pinning,具体原理可以点 这里 查看,这个时候可以采用一些插件取消这个限制。

Android平台也同样可以通过HTTP代理或VPN(HTTPCanary)的方式获取到数据包,也可以用虚拟机、太极(模拟xposed环境)等方式获取数据包。

虚拟机方式也存在一定限制,比如x86平台虚拟机不支持arm平台应用安装、设置代理较为麻烦等;Google提供的AVD虽然提供了arm/aarch架构的虚拟机平台,但在x86平台上的转译效率较低,性能几乎就是没法用的水平。

Charles

应用官网:Charles Proxy请尽量支持正版,并于24小时内解除授权,这里提供一份可用授权(版本4.6.2可用):

1
UmVnaXN0ZXJlZCBOYW1lOiBMeG5DaGFuQG5kZi1pbmMuY24KTGljZW5zZSBLZXk6IDkxQUY3MjdBQjdEMUQ1N0QxOAoKUmVnaXN0ZXJlZCBOYW1lOmh0dHBzOi8vemhpbGUuaW8KTGljZW5zZSBLZXk6IDQ4ODkxY2YyMDljNmQzMmJmNA==

Windows

打开Charles后打开ProxySSL Proxying Settings,勾选Enable启用抓取SSL加密包,左侧Include添加需要抓取的域名,右侧Exclude添加不抓取的域名,支持通配符,Include包括*.*即为全部抓取。

HelpSSL ProxyingInstall Charles Certificate安装根证书到本机,即可开始抓取HTTPS数据包。

iOS

ProxyProxy Setting,HTTP组下Port值即为代理端口号,如有需要可更改。

  1. 打开iOS设备,选择无线局域网,右侧Info按钮,下滑配置代理,选择手动,服务器输入当前Charles运行设备的IP地址,Port填写上方设置的代理端口号,然后随意访问任意网站,查看Charles是否跳出询问对话框,选择Allow
  2. 打开Safari,输入chls.pro/ssl,此时会自动下载一个描述文件,点击安装。
  3. 打开设置,通用,描述文件,选择Charles字样的选项,进去选择安装。
  4. 打开设置,通用,关于本机,证书信任设置,勾选或打开Charles Proxy CA字样项即可,此时该iPhone上的全部网络数据均可被Charles捕捉到。

Android 6.0 and older

Miui 9.6.1.0 CN Stable (Based on Android 5.1.1)版本为例。

  1. 打开浏览器,输入chls.pro/ssl,此时会自动下载一个证书,点击保存。
  2. 打开设置,更多设置,系统安全,从存储设备安装证书,选择刚才下载的证书文件,然后选择VPN和应用即可。

其他设备的抓包方式还在完善中,请关注后续更新!

 简单说两句



联系站长 | 服务状态 | 友情链接

备案号:辽ICP备19013963号

萌ICP备 20219421 号

中国互联网违法和不良信息举报中心

架构版本号:8.1.5 | 本站已全面支持IPv6

正在载入运行数据(1/2)请稍后...
正在载入运行数据(2/2)请稍后...

Copyright 2024 LingXuanNing, All rights reserved.