通过抓包来对http、https进行简陋比较

关于如何盗取4399账号

因为上篇文章中安装Hyper-V的时候和我的VMware犯冲了,所以这一次我使用的是Hyper-V作为supervisor,有关如何使用Hyper-V不是这篇文章的重点,这里不过多赘述

安装完Ubuntu系统,查看网络

选用的虚拟网卡为Default Switch(看了一下似乎是NAT+DHCP)

由上可知,该虚机的网卡eth0(只有一个)ip为172.18.0.70,并且以主机上的以太网虚拟网卡(ip为172.18.0.65)为其DNS和默认路由(在这里也是其默认网关),网络拓扑结构如下:

安装wireshark(由于之前安装过,这里就不给出命令的输出了)

打开wireshark

开始抓取

选择eth0(或者any,反正也就这一个网卡)开始抓取

注意,在进行这一步的时候不要打开网络代理!!!否则所有的wireshark将抓不到ip地址为目标ip的包,只能抓到向代理服务器发送和接收的包(Ubuntu的自带代理似乎没有PAC功能,或者是有PAC功能而我不知道怎么开)

实验指导书上分两种类型的链接:安全链接与不安全的链接。

对于不安全链接,我选取的是:小时候经常玩的4399小游戏网站,分析如下:

查看ip

可以看出www.4399.com的ip地址为150.138.214.94

开始抓包

点击wireshark左上角的蓝色按钮,就不配图了。

一定要在访问网址之前开启抓包,为了避免不必要的干扰,在开启抓包之后要迅速进行后续操作,在完成后续操作之后要迅速停止抓包。

访问网址,并进行登录操作

这里不多说

编写过滤器(filter)

因为我打算抓登录过程收发的报文,而这种报文一般是http协议的,所以过滤器如下所示:

但实际上经过尝试这样并不能抓到我们想要的登录时的报文,只能抓到在首页刷新时收发的报文,经我猜测应该是4399网站将“用户登录”这一功能的处理交给了后台服务器(business layer或者persistence layer),而网址本身部署在前台服务器(presentation layer),所以会导致使用前台服务器的ip抓不到登录时的报文的情况。

由于我们不知道4399网站的后台服务器的ip,无法通过指定ip的方法来抓取报文,但是好在这台虚拟机的网络活动不频繁,而我们又知道登录操作一定是通过http协议进行数据报收发的,所以过滤器直接写成 http 即可,如下所示:

即可抓到想要的http报文了

分析包的内容:(所选行即为登录时收发的数据报报文)
以太网包头
ip包头
tcp包头
http报文

因为之前上计网课的时候只研究过前面三个数据包的包头(所以包头结构图这里即不放了),对于http包头没有研究,这次特意上网查了一下http包头结构,如下所示:

对于最后的请求数据主体部分,其中解析出来的第一部分是一个URI连接(是解析出来便于可视化的,在原报文中并没有直接写出),在浏览器中打开如下所示:

显然这是指定被请求资源(实际上就是把请求头部中的HOST的值和请求行中的URL的值拼在一起了)。

解析出来的后续部分Response in frame 是具体的POST请求的返回数据,共478字节,如下所示(下面为表明该数据是明码传输,使用十六进制展示)

整理后如下所示:(application/x-www-from-urlencoded是一种发送请求的格式)

显然”username”=”623232747″一眼就能看出,而”password”行显然是经过了一种加密

下面我们来尝试破解它:

首先我猜想这个密码的加密方式是常见的AES,那么我们只需要找到密钥就可以了。我猜测加密并提交的函数位于js中,然后挨个打开这个html中链接的js,最后功夫不负有心人,终于让我找到了。

直接百度搜索AES解密网站,随便打开一个就可以实现解密了。

(20010311是我的生日,也是我这个号的密码)所以,即使这个密文经过加密,我们也是能够找到它的密钥并对其进行解密的。(为了防止你们觊觎我的4399账号的现在已经修改了hhhh)

退一万步讲,即使4399网站没有把这个加密方法的密钥暴露在js文件中,甚至我们都不知道这个加密方法的种类,直接将密文暴露在报文中也是安全度不够的。

对于安全链接我选取的是:我的个人主站,分析如下:

查看ip

(根据上面的经验,这一步可能并没有什么用。。。)

开始抓包

点击左上角的蓝色按钮即可,这里不多说

访问网址,并进行登录操作

(当然,这只是我的学号,并不是我的用户名,密码也是我瞎输入的)

编写过滤器(filter)

由于https协议是全程使用TLS/SSL协议加密过的,所以并不能通过http协议来对其进行过滤。过滤器应该是:SSL

为了防止和上面4399一样出现业务服务器和表现服务器不统一的情况,这里不使用ip地址作为过滤条件

分析包的内容:

TCP以及TCP外面的包头结构和之前的一样,而TCP内部被加密,无法分析

总结

http协议传输的数据直接明文展示在报文中,尤其是重要的用户数据,很容易被窃取,安全性太差。

https协议=http协议+TLS/SSL协议,采用安全证书的方法使得数据传输真正变成端对端的传输,去除了被中间人窃取或者攻击的风险。

哦对了,btw,祝djx小朋友生日快乐。

Subscribe
提醒
guest
1 评论
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Mark
Mark
8 月 之前

wzynb!