HTTP 协议分析及其还原

Wireshark开发与使用 admin 4186℃ 0评论

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 协议分析及其还原

喜欢 (3)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(3)个小伙伴在吐槽
  1. 好强大
    hety2014-05-20 00:09 回复
  2. 提前祝您新年快乐。 乙未年(羊)冬月十九 2015-12-29
    yiluyingxiao2015-12-29 09:30 回复
  3. 你们是知其然又知其所以然的家伙,赞! :mrgreen:
    iu2016-05-10 18:51 回复