https请求抓包原理 (为什么使用了https还能抓包)

前言:

抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。

本文主要介绍https下抓包的几个工具,证书的配置,证书失效了,采用的其他方案绕过ssl验证,手机端怎么抓包

工具的分享

工欲善其事必先利其器,抓包工具,wireshark,Fiddler4,Charles,我平时用的Charles居多,一款神器。手机端的抓取方案有两种:1.基于Charles的代理,2.手机端抓包app:Packet Capture,下面听我娓娓道来

Charles工具抓取https

https抓包数据分析,https与http的抓包工具

功能描述:

Charles 是 HTTP 代理 / HTTP 监视器 / 反向代理,使开发人员能够查看其计算机和 Internet 之间的所有 HTTP 和 SSL / HTTPS 流量。这包括请求、响应和 HTTP 标头(其中包含 Cookie 和缓存信息)。

适用平台:Windows、Mac、Linux

官网地址:https://www.charlesproxy.com/

*载下**安装,一路next之后,安装成功。

该软件是收费的(可以免费体验30天),简单说一下破解方法:

(链接:http://pan.baidu.com/s/1qYTz48s 密码:t9el)将jar文件替换到charles安装目录下的lib目录中即可。

  • 配置安装根证书

为了让计算机信任我们的证书,我们需要将Charles提供的证书安装在计算机上,如下:

https抓包数据分析,https与http的抓包工具

如果此时证书还是不被信任的,让不信任变成信任:打开IE浏览器—>工具—>Internet选项—>内容—>证书—>把中级证书颁发机构中的charles证书导出来—>再把导出来的证书导入到受信任的根证书颁发机构中。这样就ok了。

这样的环境只能抓取非SSL加密的报文,如果需要抓取SSL加密的链接,继续设置SSL。如下:、

https抓包数据分析,https与http的抓包工具

(写*:443是为了抓取去往所有站点的443端口数据)

现在就可以拦截所有HTTPS数据报文了。如下:

https抓包数据分析,https与http的抓包工具

02

手机数据抓包

针对手机数据抓包,给出两个办法。

  1. 使用上述Charles配置的环境,对手机报文抓取
  2. 利用手机APP Packet Capture 拦截收集数据报文

下面分别说这两种方案。

方案1

之前我们已经部署好了Charles抓包的环境,现在我们只要将手机的数据报文流经PC上的Charles即可。

为此,我们将电脑和手机链接在同一局域网内(使用同一wifi即可),然后查看计算机的ip地址,windows之下使用cmd命令ipconfig即可,然后在手机连接Wifi的界面设置代理,如下:

https抓包数据分析,https与http的抓包工具

charles默认代理端口为8888,如果修改了此处对应修改。

安卓也有类似的操作界面,长按修改网络什么的。(暴露了自己的土豪手机hiahiahia)。

设置好以后需要在手机端安装证书,在浏览器里访问chls.pro/ssl 来自动*载下**安装证书(需要设置手机解锁密码)。

安卓手机到这一步就完成了,【重要】iphone手机需要在设置->通用->关于手机->证书信任设置里面打开该证书的开关。

此时,在手机里使用APP,在Charles里面就能看到访问的数据信息了,包括HTTPS。(初次连接的手机Charles会弹窗需要点一下Allow)

方案2

Packet Capture是很强大的一个网络分析APP,在我分析华为云备份的协议报文时,手机始终不信任Charles证书,所有报文均被加密,后来是该应用拯救了我。使用简便,不用证书等设置,*载下**打开即可使用。

https抓包数据分析,https与http的抓包工具

APP在Google应用市场就有,不能翻墙的话,点这里*载下**:https://www.coolapk.com/apk/app.greyshirts.sslcapture

安装完成后界面如下:

https抓包数据分析,https与http的抓包工具

点击绿色箭头进行全局捕获,点击带1那个绿色箭头可对某一应用分别捕获。

完成后,点击列表中的某次抓取查看详情。如下:

https抓包数据分析,https与http的抓包工具

在该界面,点击右上角的*载下**按钮可以保存文件成pcap格式,通过PP助手等导出后可以在PC上的WireShark上打开分析。

可能经历了这些之后,有些软件还是不能抓包,例如我之前就遇到过饿了么手机app不能抓包的情况,这是因为有些APP里面使用了ssl-pinning的技术来防止中间人攻击。接下来可以使用大招了 Xposed+JustTrustMe关闭SSL证书验证,见下文。