微信通信HTTP协议抓取与分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微信通信HTTP协议抓取与分析
一、实验目标
1、基本要求:利用HTTP协议抓取工具获得微信通信会话过程,并对数据包进行分析。
二、基础知识
1、了解HTTP两个基本命令GET与POST,并利用抓取工具获得数据包;
2、利用Telnet命令仿真测试命令GET与POST;
3、利用抓取工具获得微信通信会话数据包,并进行分析。
4、GET与POST
get是从服务器上获取数据;
post是向服务器传送数据。
三、实验过程与结果
1、网页上Httpwatch抓包结果
安装httpwatch抓包工具,使用IE浏览器,右击有显示httpwatch professional,进入抓包界面。点击Record按钮,输入网址/,开始抓包
1.1.1 Get方式客户端向服务器发送数据
GET /gw/css/style.css HTTP/1.1
Accept: text/css, */*
X-HttpWatch-RID: 26411-10018
Referer: /gw/index/index.html
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host:
Connection: Keep-Alive
1.1.2 Get方式服务器向客户端返回地数据
HTTP/1.1 200 OK
Date: Thu, 25 Feb 2016 09:15:55 GMT
Content-Type: text/css
Content-Encoding: gzip
Last-Modified: Tue, 15 Dec 2015 02:18:29 GMT
Accept-Ranges: bytes
ETag: "80487e3de36d11:0"
Server: Microsoft-IIS/7.5
X-Powered-By:
Content-Length: 9039
Age: 1
X-Via: 1.1 lishui17:6 (Cdn Cache Server V2.0)
Connection: keep-alive
在网页上输入快递单号查询,网页上发送请求
1.2.1 POST方式客户端向服务器发送地数据
POST /addTrace.ashx HTTP/1.1
X-Requested-With: XMLHttpRequest
X-HttpWatch-RID: 73415-10085
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept: */*
Referer: :8022/TraceSimple.aspx
Accept-Language: zh-CN
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko Host: :8022
Content-Length: 334
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: _SessionId=pr2zch43i5efxrdjcnuvtwzs
1.2.2 POST方式服务器向客户端返回地数据
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/plain; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By:
Date: Thu, 25 Feb 2016 11:58:45 GMT
Content-Length: 7
2、Telnet模拟http请求
2.1 Telnet模拟get请求
(1)、打开"运行"->cmd进入命令环境;
(2)、输入"telnet 80",回车后 ,屏幕为全黑,此时我们利用快捷键"Ctrl+](右中括号)"来打开本地回显功能
(3)、单击回车,进行编辑状态。
(4)、输入:"GET / HTTP/1.1"后回车,在第二段接着输入:"HOST:"然后按回车,这样一个简单的HTTP请求就完成了,接着我们只要再按下回车,便向服务器递交这个请求了。
(5)、接收服务器返回,只需几秒钟,我们便会收到来自服务器反应.
2 .2 Telnet模拟post请求
3、获得微信通信会话数据包
3.1微信服务器返回一个会话ID
微信Web版本不使用用户名和密码登录,而是采用二维码登录,所以服务器需要首先分配一个唯一的会话ID,用来标识当前的一次登录,通过请求地址:
https:///jslogin?appid=wx782c26e4c19acffb&redirect_uri=https %3A%2F%%2Fcgi-bin%2Fmmwebwx-bin%2Fwebwxnewloginpage&fun=new&lang=zh_ CN&_=1456453643888
服务器会返回如下的字符串:
window.QRLogin.code = 200; window.QRLogin.uuid = "QfbRQRaVMw==";
而这个QfbRQRaVMw==字符串就是微信服务器返回给我们的ID。
3.2通过会话ID获得二维码
既然微信Web版本是通过二维码进行登录,如何获得这个随机的二维码呢?答案就是利用刚才获得的ID去请求服务器生成的二维码,通过上面的ID我们组合得到以下的URL地址:https:///qrcode/QfbRQRaVMw==
https:///cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=QfbRQ RaVMw==&tip=0&r=-459741763&_=1456453643890