实现Charles+Postern抓包
在实际抓手机App包场景中,有很多种方案,经典的就是Fiddler,但是Fiddler会有一个问题,如果App设置了不走代理这个选项,那Fiddler就不行了,比如说大众点评,美团系的平台,使用了一种叫 “移动长连接” 的技术导致抓不到包,接下来对移动长连接进行一番剖析。
根据查询的资料,所谓移动长连接,指的是在app运行之初,通过tcp连接打开的一个连接通道,在app使用中,后续访问都通过此通道,自定义出交互协议进行通讯。不过美团的技术团队也考虑了在特殊情况下,长连接无法使用的情况,在这种时候,他们会执行第二套连接方案,即使用UDP面向无连接的特性提供另一条请求通道,或者绕过代理长连服务器之间向业务服务器发起HTTP公网请求。
以下是移动长连接的实现图:
换言之,就是在移动长连接无法使用的情况下,系统会接收来自http公网的请求,这便为我们抓包工作提供了可趁之机。
这样实现抓包就有了两种方式去实现,一个是通过hook手段,使长连接无法工作,继而只能通过http的方式发送,第二种就是tcp通道发生故障会切换到http请求。这个可以通过屏蔽ip来实现。
屏蔽ip途径
首先移动端长连接与服务器的通信肯定是TCP协议;然后由于是长连接,那么移动端肯定不会轻易的去断开这个连接,也就是不会发送fin包,有了这两个特征就可以开始筛选ip了。
pc端的话用 wireshark 就完事了;
除此之外,还可以通过设置全局代理,只转发http请求的方式,来让app弃用tcp通道。
下载postern.apk(google pay商店),设置全局代理,只转发http请求,再用charles抓取请求,即可发现http请求就被抓到了。
以下就是采用Charles+Postern的具体实现方式,希望对大家有所帮助!
Charles配置
下载
Charles下载地址:https://www.charlesproxy.com/download/
安装
下一步,下一步安装就好,安装完成后直接打开即可
设置代理
点击Porxy Settings
注意:此时我的Windows Proxy
是去掉对勾的,表示不抓PC端
设置监听端口
配置SSL代理
点击SSL Proxying Settings
添加代理,*.*,*.4
即可
到现在为止,Clarles就设置完毕
Postern
Postern并不是抓包工具,他是一个代理工具
它可以将http请求转为socket,并且包转发到Charles上,这样就可以抓到更多的包
配置代理规则
添加代理服务器
第一步.
第二步
配置规则
添加规则
第一步
第二步
如果Charles有提示出东西,一定要点击Allow
至此,咱们就是可以用charles+Postern进行抓包了
本页摘自 https://blog.youkuaiyun.com/tianyi19/article/details/121254560
https://www.cnblogs.com/badbear/p/14487750.html
如有侵权,请联系本人删除!