https抓包与防抓包

抓包工具

  • Charles
  • Fiddler

Charles使用

下载

  • PC端安装Charles根证书
    help–>SSLProxying–>Install Charles Root Ceriticate
  • 安装Charles根证书到手机
    help–>SSLProxying–>Install Charles Root Ceriticate on a Mobile Device or Remote Browser

注意:安装证书过程中手机wifi设置电脑ip地址代理,否则不会下载证书

  • 在手机浏览器中访问 chls.pro/ssl
  • pc端设置代理https端口
    Proxy–>SSL Proxying Settings

Fiddler使用

下载

  • 确保Android设备和安装Fiddler的电脑连接到同一个WIFI上
  • 配置Fiddler抓取并解密HTTPS包
    Tools–>Fiddler Option -->HTTPS选项勾选"Capture HTTPS CONNECTs" 和"Decrypt HTTPS traffic" . 由于通过WIFI远程连接过来,所以在下面的选项框中选择"…from remote clients only" . 切换到"Connections" 选项卡修改监听端口, 勾选上"Allow remote computers to connect"
  • 设置Android设备,添加上代理服务器
  • 导证书到Android设备
    打开设备自带的浏览器, 在地址栏输入代理服务区的ip和端口导入FiddlerRoot certificate

TCP/IP分层

TCP/IP的分层共分为四层:应用层 、传输层、网络层、数据链路层

  • 应用层: 向用户提供应用服务时的通讯活动(ftp、dns、http)
  • 传输层:网络连接中两台计算机的数据传输(tcp、udp)
  • 网络层:处理网络上流动的数据包,通过增氧的传输路径把数据包传送给对方(ip)
  • 数据链路层:与硬件相关的网络、设备驱动等

HTTP/HTTPS

HTTP
HyperText Transfer Protocol(超文本传输协议)被用于在Web浏览器和网站服务器之间传递信息,在TCP/IP分层中属于应用层。

  • 通信使用明文,内容可能被窃听
  • 不验证通信双方的身份,因此有可能遭遇伪装
  • 无法证明报文的完整性,所以有可能遭到篡改

HTTPS
HTTPS中的S代表SSL或者TLS,就是在原HTTP的基础上加上一层用于数据加密、解密、身份认证的安全层
HTTP+加密+认证+完整性保护=HTTPS

HTTPS单向认证

在这里插入图片描述

HTTPS双向认证

在这里插入图片描述

抓包原理

利用中间人攻击的方式实现。以Charles为例
在这里插入图片描述

防抓包策略

1.代理检测

  • 检测是否使用网络代理
  • 将网络库(如OkHttp库)设置为无代理模式,不走系统代理

在这里插入图片描述

但是这个方式也可以攻破,对代码进行Hook
在这里插入图片描述

2.证书固定

SSL-Pinning

  • 证书锁定(Ceriticate Pinning)
    1. 在客户端代码内置仅接受指定域名的证书, 而不接受操作系统或浏览器内置的CA根根证书对应的任何证书
    2. 证书修改需要重新发布客户端
  • 公钥锁定(Public Key Pinning)
    提取证书中的公钥并内置到客户端中,通过与服务器对比公钥值来验证连接的正确性.

破解SSL-Pinning
Xposed框架+justTrustme模块

  • Xposed框架
    Android上应用广泛的Hook框架,基于Xposed框架制作的外挂模块可以hook任意应用层的java函数,修改函数实现.
  • justTrustMe插件
    JustTrustMe插件是 一个用来禁用、绕过SSL证书检查的基于Xposed模块。将Android系统中的所有用于校验SSL证书的API都进行了Hook,从而绕过证书检查。

3.对抗HOOK

  • 检测Hook:检测Xposed、Frida、Substrate等Hook框架
  • 使用Socket连接:使用Socket走TCP/UDP,防止被应用层抓包
  • 传输数据加密:协议字段加密传输,并隐藏秘钥,应用层加固
  • nvtive蹭传输:将网络传输逻辑写到jni蹭实现,提高反编译门槛
  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值