csatblogspotdotcom

Sunday, March 6, 2016

使用wireshark跟踪并分析http交互过程的技巧

使用wireshark查看跟踪http交互过程有一些小技巧 1. 在筛选栏(类似浏览器地址栏的位置)输入http可以得到http协议的结果,如果要在一个pcap文件的大量记录里面查找关键字,例如查找http协议会话里出现的JSESSIONID,怎么办?在筛选栏输入http contains "JSESSIONID"回车即可; 2. 右键选中想要查看的行,追踪流-TCP流,可以看到一个交互的TCP流,其中粉红底红字的是client向server提交的数据(本人在客户端网络跟踪所得的结果),淡蓝底蓝字是server的回应,一个TCP流含有一个或多个“请求-响应”,这些请求里面有请求HTML页面的,txt的,图片的,也有请求css、js脚本的,服务器也会回复相关请求。 3. 在一个请求里面,首先就是一个GET或者POST,表明了该请求使用的方法,接着就是所需的东西(包含相对路径),下面一行是host的地址,即服务器的网址,再下面一行是客户端信息user-agent:浏览器型号、内核、系统内核版本等,接下来语言、编码、referer(从哪里定向而来)、连接信息等;如果是POST,在前面这几行后面空一行,接下来是形如:关键字名1=关键字值1&关键字名2=关键字值2&...且此字符串也已经urlencode过,这个就是post的内容,和get方法直接在url里面加的内容一样,只不过get在url和这个串之间加了个“?”; 4. 在server的响应里面,第一行就是HTTP版本、状态,例如“HTTP/1.1 200 OK”:使用http的1.1协议版本,状态200表明OK,下一行显示server的信息,例如:“Server: Apache-Coyote/1.1”,再下面一行显示接受的单位,如“Accept-Ranges: bytes”,经过几行信息后,后面就是client所请求css/图片/js脚本等的内容; 5. 而利用这些信息,可以使用程序模拟client(例如Python的urllib2、urllib、httplib、requests库等)与server进行交互; 6. 浏览器会保存网页的缓存以及会话的状态(cookies),访问曾经访问过的网站,可能跟踪不到所有信息,因为有一些内容是从缓存里读取的,而在浏览器里清空缓存并删除cookies后,抓包结果就能看到所有交互了;

Labels: , ,

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home