如何使用wireshark抓取HTTPS数据包?
Posted Sun@Python
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用wireshark抓取HTTPS数据包?相关的知识,希望对你有一定的参考价值。
1、wireshark 抓包为什么不显示出来?
wireshark 是基于网络层的抓包工具,通过捕获通信双方的TCP/IP包实现内容提取。对于应用层的数据,如果应用层协议是公开的,就可以直接显示数据。处理HTTPS 协议时,因为不知道客户端、服务端的私钥,所以对应的数据不可见。 也就是说,如果 wireshark 能够获取私钥,就能显示HTTPS的通信数据。
2、利用chrome浏览器实现对https的抓包:
1、配置环境变量 SSLKEYLOGFILE C:\\Users\\Sun\\sslkey.log
**
注: 这个环境变量具体根据自己电脑配置,用的时候添加,不用记得删掉。因为它在其他程序运行时可能给你带来异常:OPENSSL_Uplink(XX……XX,08): no OPENSSL_Applink
**
2、重启谷歌浏览器,在指定位置查看是有生成sslkey.log 文件。
3、配置配置 wireshark
配置wireshark:编辑---->首选项---->protocols---->TLS
4、抓取HTTPS数据包
使用谷歌浏览器访问https网站或者在浏览器控制台发送请求。
备注:
1.打开控制台-如下图所示(或者浏览器页面右键->检查->切换到console控制台即可)
2.控制台输入如下代码
fetch(new Request('url地址',method:'POST')).then((resp)=>console.log(resp))
注意:url地址是需要访问的接口路径,如果需要传递参数,就将请求参数添加到url后面即可(与get方式一样)
3.完成第二步之后,点击回车即可。在地址请求栏你会看到接口的请求信息,到此大功告成!
如果解密失败就会显示如下:
不使用时一定要将配置的路径删除掉,C:\\Users\\Sun\\sslkey.log 会不断变大影响其他程序的。
参考链接:
https://www.zhangshilong.cn/work/268389.html
https://blog.csdn.net/qq_17328759/article/details/122884006
抓包工具(如Charles)抓取Https数据包
参考技术A 1、HTTPS 不是单独的一个协议,它是 HTTP + SSL/TLS 的组合;2、TLS 是传输层安全性协议,它会对传输的 HTTP 数据进行加密,使用非对称加密和对称加密的混合方式;
3、抓包工具的原理就是“伪装“,对客户端伪装成服务器,对服务器伪装成客户端;
4、使用抓包工具抓 HTTPS 包必须要将抓包工具的证书安装到客户端本地,并设置信任;
5、HTTPS 数据只是在传输时进行了加密,而抓包工具是接收到数据后再重新加密转发,所以抓包工具抓到的 HTTPS 包可以直接看到明文;
1、HTTPS 的数据是加密的,常规下抓包工具代理请求后抓到的包内容是加密状态,无法直接查看。但是,正如前文所说,浏览器只会提示安全风险,如果用户授权仍然可以继续访问网站,完成请求。因此,只要客户端是我们自己的终端,我们授权的情况下,便可以组建中间人网络,而抓包工具便是作为中间人的代理。
2、通常HTTPS抓包工具的使用方法是会生成一个证书,用户需要手动把证书安装到客户端中,然后终端发起的所有请求通过该证书完成与抓包工具的交互,然后抓包工具再转发请求到服务器,最后把服务器返回的结果在控制台输出后再返回给终端,从而完成整个请求的闭环。
HTTPS可以防止用户在不知情的情况下通信链路被监听,对于主动授信的抓包操作是不提供防护的,因为这个场景用户是已经对风险知情。要防止被抓包,需要采用应用级的安全防护,例如采用私有的对称加密,同时做好移动端的防反编译加固,防止本地算法被破解。
以上是关于如何使用wireshark抓取HTTPS数据包?的主要内容,如果未能解决你的问题,请参考以下文章