使用Wireshark抓取HTTP/HTTPS的重要数据 1、HTTP登录抓包 1.1抓取HTTP用户鉴别数据 登录使用HTTP协议的某网站,账号为“111111”,密码为“222222”,并输入验证码。开启wireshark抓取登录过程中的数据,点击网站的“登录”按钮,提示“用户名或密码错误”后,即可停止wireshark抓包,见图1。 图1 HTTP协议网站登录 查看Wireshark界面,可以看到有一条POST方式的登录的数据包,打开这条数据包,可以直接看到明文显示的用户名和密码,见图2。 图2 查看Wireshark界面中的明文信息 部分用户名和密码会经BASE64编码或MD5计算后传输,可根据数据特征判断后,选取响应的工具计算出原文,比如“MjIyMjIy”的BASE64编码原文为“222222”,见图3,“e3ceb5881a0a1fdaad01296d7554868d”的MD5值原文也为“222222”,见图4。 图3 BASE64解码 图4 MD5解密 1.2抓取HTTP重要业务数据数据-修改登录密码 登录使用HTTP协议的某网站后修改登录密码,原密码为“Fymmt112345”,新密码为“Fymmt112345!”。开启wireshark抓取此过程中的数据,点击网站的“提交”按钮,提示“密码修改成功”后,即可停止wireshark抓包,见图5。 图5 修改HTTP协议网站中的登录密码 因不知道原密码、新密码在网站程序中的变量名,所以在wireshark的分组字节流中直接搜索刚才设置的新密码“Fymmt112345!”,可以看到在第3159帧中显示“xxm=Fymmt112345!&ymm=Fymmt112345”,见图6。 图6 Wireshark界面中修改密码的明文信息 由此可知,使用HTTP协议有很大的危险,因为用户的账户名、口令等重要的敏感数据信息均在网络中“裸奔”,一旦被不怀好意的人利用,后患无穷。 2、HTTPS登录抓包 2.1 TLSv1.2握手协议 HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。图7为TLSv1.2的握手协议,可以看到在第2歩Server Hello服务器会把使用的cipher suit和random发给客户端。 图7 TLSv1.2的握手协议 2.2 抓取TLSv1.2协议中算法套件 使用wireshark抓取使用HTTPS协议的登录数据包,在Server Hello可找到使用的算法套件为TLS_RSA_WITH_AES_128_CBC_SHA,见图8。分析可知,使用了RSA2048公钥算法实现密钥交换、AES128对称算法实现通信数据的机密性、SHA杂凑算法实现通信数据的完整性。 图8 抓取算法套件 2.3 抓取TLSv1.2协议中公钥证书 在刚才wireshark抓取使用HTTPS协议的登录数据包中找到公钥证书certificate的参数,见图9。 图9 在wireshark中查找certificate参数 选中certificate,右键导出分组字节流,另存为cer格式的证书,打开后见图10。从中我们可得出证书中的一下有用信息,比如签名算法为sha256RSA,表示上一级证书认证机构在给该证书签名时,先用sha256杂凑算法得出哈希值,再用RSA公钥算法对哈希值签名;证书在有效期内(2021年8月23日-2035年5月2日);公钥算法为RSA2048,即服务器的证书中的公钥RSA2048,服务器可使用该公钥解密客户端发来的加密信息,客户端也可用该公钥进行证书验签。 图10 公钥证书 |