zoukankan      html  css  js  c++  java
  • 使用Charles进行HTTPS抓包

    背景:

    在进行App测试或定位线上问题时,经常会遇到抓取HTTPS数据包的需求。一般在windows上会使用fiddler,Mac上使用Charles。对于https请求,抓到的数据因为经过了加密,只能看到乱码。

    本文介绍如何使用Charles来抓取https网络报文。操作步骤已在MAC + iphone上亲测。

    操作原理

    关键的操作思想:
    1. 构造一个中间人代理,它有能力完成TLS/SSL握手
    2. 弄到一个根证书,并用它生成签名认证的代理服务器证书

    <p>  Charles就是一个理想的中间人,它支持SSL握手,可以自动根据根证书生成一个签名的服务器证书,并且它的官网为我们提供了一个根证书。
      我们要做的就是在客户端安装好这个根证书,然后让我们的操作系统信任它。对App来说,需要设法在IOS或Android上装上这个官网提供的根证书。
      完成上述步骤后,App再指定Charles为它的代理服务器,这时,App请求的服务器证书就是Charles自动生成的代理服务器证书。如果Charles的根证书已被信任,这个自动生成的代理服务器证书是有效的,使用它App和Charles的TLS握手可以顺利完成。</p>

    以下是详细的操作步骤:

    分步指南

    第一步:配置HTTP代理,这步与抓取HTTP请求是一样的:

    图1

    选择在8888端口上监听,然后确定。够选了SOCKS proxy,还能截获到浏览器的http访问请求。

    图2

    第二步:配置SSL代理:

    首先在charles的 Proxy选项选择SSL Proxy Settings

    图3

    点add添加需要监视的域名,支持 *号通配符,端口一般都是443:

    第三步 为手机设置代理

    在手机无线中配置手动代理,输入安装Charles的电脑的网络地址,端口填8888。

    第四步 安装根证书

    在手机上安装Charles的根证书:

    以IOS为例,在Safri上打开Charles的根证书下载网址: chls.pro/ssl 。
    顺利的话会出现这样的画面,继续点安装,然后去设置里的描述文件管理中信任它就行了。

    图4

    如果不能下载,检查手机是否正确设置了代理,Charles是否已经打开并配置正确。

    电脑端的根证书安装

    以MAC为例,直接在Charles的Help菜单中安装;安装完成后去系统的钥匙串访问中信任它。

    图5

    完成后:试试看抓一下QQ空间的数据,将..qq.com 和*.qq.com 添加到SSL Proxy的Setting中后,配置好手机代理,打开手机QQ空间App
    可以看到抓取到的报文如下:

    图6

    几点说明:

    1. 本文的操作指南是在MAC+iphone5s+Charles上实践的。文中开头已经讲述了HTTPS使用中间人代理抓包的简单原理和核心操作思想,其他环境下可以类比。
    2. 有些人认为https可以完美防止中间人攻击,无法抓到https的明文包...... 其实是不对的,TLS的设计只能说是从技术上最大限度地保护网络报文的安全,它无法防止用户自己作死。
    3. 网络安全和用户的安全意识是强相关的,技术的防范能力总是有限的。在实际生活中养成良好的上网习惯,千万不能随意信任不明来源的证书,轻视浏览器、操作系统或其他App给我们发出的安全警告。


    作者:秋水時至
    链接:https://www.jianshu.com/p/7a88617ce80b
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    关于隐藏元素高度的问题 css visibility:hidden 与 display:none的区别
    三星R428 内存不兼容金士顿2G DDR3
    IE (6-11)版本,在使用iframe的框架时,通过a标签javascript:; 和js跳转parent.location的时候 出现在新页面打开的情况
    按键精灵 vbs 获取网页源码 xp系统被拒绝
    threejs 组成的3d管道,寻最短路径问题
    javaweb部署多个项目(复制的项目)
    添加无登录权限的SSH用户命令
    Using Blocks in iOS 4: Designing with Blocks
    Using Blocks in iOS 4: The Basics
    Understanding Objective-C Blocks
  • 原文地址:https://www.cnblogs.com/niel/p/9480311.html
Copyright © 2011-2022 走看看