HTTP 协议分析及其还原

http://www.iprotocolsec.com/2014/04/13/http-%E5%8D%8F%E8%AE%AE%E5%88%86%E6%9E%90%E5%8F%8A%E5%85%B6%E8%BF%98%E5%8E%9F/

HTTP协议是目前使用最广泛的一种基础协议,这得益于目前很多应用都基于WEB方式,实现容易,软件开发部署也简单,无需额外的客户端,使用浏览器即可使用。

HTTP是一种无状态的协议,即HTTP协议本身没有保存请求方或者响应方当前的状态,客户端想要什么内容,就向服务器发送什么请求,服务器有相应 的内容,则返回200,将内容发送给请求方,如果没有,则返回404,告诉他,我找不到你要的东西(你是不是请求错误?还是服务器本身删除?没有原因,只 是告诉你,至少目前是没有)。当你过几分钟后再次请求相同的内容时,需要再次发起连接,重新发送请求。

服务器被动接收客户端的请求,然后将请求相应的内容返回给客户端,这时客户端在收到相应内容后可以发起终止连接,也可以在同一个会话中继续发送新的请求(需在第一次请求的时候在HTTP头部设置Keep-Alive属性)。

通常在做HTTP协议分析时,需要保存pcap文件中HTTP的协议数据(整个会话,而非单个报文),如下图:

http export selected packet bytes

如果需要保存如图中所示21号会话服务器返回的图片文件,在Wireshark重组会话结束报文上点击右键,选择“Export selected packet bytes”,然后根据提示保存相应的数据即可,但是如果重组会话失败,那么就无法通过Wireshark来完成我们的需求,如下图:

http_analyze2

在上图中,如果需要保存服务器返回的global.css文件,并不能像上面导出数据一样一键进行导出。因此我们写了一个HTTP协议分析软件exhttp,可以对指定PCAP文件HTTP进行完整的分析和还原,如下图:

http协议分析程序

exhttp使用有两种方式,其一是PCAP文件中所有HTTP会话内容进行分析和还原,并通过参数设置输出的内容写入文件,例如:

exhttp.exe -f sample.pcap -b -w d:\http_resotre\rprot-result

将sample.pcap文件所有的HTTP会话分析后并将内容写入到d:\http_resotre\rprot-result目录(写入的内容不包括请求内容,只只写入每个会话的HTTP请求头部、服务器返回HTTP头部和返回内容)。

第二种方式对指定会话返回的内如写入文件,使用方法是:

exhttp.exe -f 163.pcap -s 19428 -i 3 -o global.css

-s:会话的源端口

-i:会话中第N个HTTP请求

-o :保存的文件名。

将163.pcap文件中源端口为19428会话的第三个HTTP请求服务器返回的数据保存到global.css文件。

exhttp下载地址:

http://pan.baidu.com/s/1bn5XDSF


你可能感兴趣的:(http,协议分析,协议还原)