登录

去注册

登录

注册

去登录

注册

每日一问 app https 抓包,一定能抓到吗?

xiaoyang   2019-08-01   收藏

很多时候我们开发项目的时候,都需要抓包,很多情况下即使是Https也能正常抓包正常。

那么问题来了:

  1. 抓包的原理是?
  2. 任何Https的 app 都能抓的到吗?
  3. 如果不能,哪些情况下可以抓取,哪些情况下抓取不到?
9

1.抓包的原理:

代理。客户端请求->经过代理->到达服务端 服务端返回->经过代理->到达客户端

2.任何Https的 app 都能抓的到吗?

7.0以下是可以的,只要手机里安装对应CA证书,比如用charles抓包,手机要安装charles提供的证书就行。
Android 7.0 之后,Google 推出更加严格的安全机制,应用默认不信任用户证书(手机里自己安装证书),自己的app可以通过配置解决,但是抓其它app的https请求就行不通。

3.同2,补充,虽然7.0之后常规手段不能抓https的包,但是可以通过黑科技跳过证书验证流程,例如,通过xposed,安装JustTrustMe模块(https://github.com/Fuzion24/JustTrustMe),
https证书检测直接跳过。

回复
蓝师傅 : @蓝师傅 

补充:如何防止被抓包? 1、https双向认证,不是客户端来的请求,拒绝连接(这里不是抓不到数据,而是连接都没建立)。 2、判断是否使用wifi代理(不可靠,可以通过hook跳过) 3、数据加密传输(  ...查看更多

2019-08-02 回复
0

个人理解:
一,抓包的原理:
是在客户端绑定代理http服务器,这个代理服务器,在客户端和目标服务器之间,偷偷的监听数据,进行抓包。这也是为什么大部分抓包app必须要用wifi和客户端在一个网络段,设置代理的原因吧。
二,不一定所有的https的app都可以抓到
只要客户端不做特殊处理,都是可以抓到的,毕竟抓包工具很强大,可以搞个假的https证书,或者其他唐方式可以绕过去。这里我说下如何避免抓包呢,1. 基于抓包原理的基础上,直接使用okhtttp禁止代理,就可以了 builder.proxy(Proxy.NO_PROXY);经过测试,可以避免抓包 2. 直接使用加密协议,全是字段乱码, 把域名换装IP 这样基本别人很难抓到,像混淆一样

回复

删除留言

确认删除留言,会导致相关评论丢失?

取消 确定