分类: LINUX
2010-06-15 19:56:08
这里的数据包是对TX的手机QQ浏览器通用版进行抓包。
一、获得登录页面的URL
1.1发送:
{'Q-AUTH': 'f85f1e3186e8862e05cb65a4d471da9e677ba94691346d98',
'Q-UA': 'KQB10_GA/100047&KMTT_2/200047&JV2&111311&MicroEmulator2.0&V2',
'Q-GUID': '870a5ec0984f4c5183524fbe155cf00f'
'Accept': 'text/vnd.wap.wml,application/vnd.wap.xhtml+xml, text/html,
text/plain,
application/xhtml+xml,image/*,audio/*,application/vnd.symbian.install,x-epoc/x-sisx-app,text/vnd.sun.j2me.app-descriptor,application/java,
*/*',
'User-Agent': 'MicroEmulator-2.0',
'Connection': 'keep-alive'}
发送的url是农场的主页面的地址,这个不重要。最重要的是包头含有的Q-AUTH、Q-UA、Q-GUID这个三个字段以及一个User-Agent。对于Q-AUTH、Q-UA、Q-
GUID这个三个字段是tx服务器区别于其它非TX手机浏览器的一个重要的东东,关于他们的值,暂时还不能够分析破解出来,不过使用这个是可以的。还有就
是User-Agent 字段,由于我是在电脑上使用模拟器来运行Jar文件,所以这个字段是模拟器的名称,最好是能够在手机上运行,然后进行抓包分析。
1.2 返回:
Content-Type: text/vnd.wap.wml; charset=utf-8
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Connection: close
Server: HTTP Load Balancer/1.0
正在进入…
返回的页面一个跳转到登录的网页的地址。下一步就是去登录页面看看。
二、到登录页面
2.1 发送:
{'Q-AUTH': 'f85f1e3186e8862e05cb65a4d471da9e677ba94691346d98',
'Q-UA': 'KQB10_GA/100047&KMTT_2/200047&JV2&111311&MicroEmulator2.0&V2',
'Q-GUID': '870a5ec0984f4c5183524fbe155cf00f'
'Accept': 'text/vnd.wap.wml,application/vnd.wap.xhtml+xml, text/html,
text/plain,
application/xhtml+xml,image/*,audio/*,application/vnd.symbian.install,x-epoc/x-sisx-app,text/vnd.sun.j2me.app-descriptor,application/java,
*/*',
'User-Agent': 'MicroEmulator-2.0',
'Connection': 'keep-alive'}
2.2 返回:
Content-Type: text/vnd.wap.wml; charset=utf-8
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Connection: close
Server: HTTP Load Balancer/1.0
//////变态的tx返回这么个\r\n
/////为了避免将本文的页面拉得太长,我就删除这个些没有的\r\n。。。。后面返回的数据包我都去掉\r\n
QQ号码:
QQ密码:
登录
小Q报时(19:34)
三、POST QQ号码和密码已经mkey给服务器
3.1发送:
{'Content-Length': '80', 'Q-AUTH': 'f85f1e3186e8862e05cb65a4d471da9e677ba94691346d98',
'Q-UA': 'KQB10_GA/100047&KMTT_2/200047&JV2&111311&MicroEmulator2.0&V2',
'Accept': 'text/vnd.wap.wml,application/vnd.wap.xhtml+xml, text/html,
text/plain,
application/xhtml+xml,image/*,audio/*,application/vnd.symbian.install,x-epoc/x-sisx-app,text/vnd.sun.j2me.app-descriptor,application/java,
*/*',
'User-Agent': 'MicroEmulator-2.0',
'Connection': 'keep-alive',
'Q-GUID': '870a5ec0984f4c5183524fbe155cf00f',
'Content-Type': 'application/x-www-form-urlencoded'}
qq=YOURQQNUM&pwd=YOURPASSWORD&mkey=2B07A0062542E4653AEB3FC42F1CD29B7078BD1ABD5D507E
POST的目的地址为刚才登录页面的那个地址。注意包头里面多了Content-length,Content-Tyep字段,其它Q-GUID,Q-
AU等都不变。POST过去的数据包有三个qq为QQ号码,pwd为对应的QQ密码,mkey就是上一步登录页面得到的。
3.2 返回:
Content-Type: text/vnd.wap.wml; charset=UTF-8
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Connection: close
Server: HTTP Load Balancer/1.0
系统检测到您的号码可能有安全隐患,需要进行安全验证。
" alt="验证码"/>
输入上图字符(不区分大小写):
返回
个人中心-&
lt;a
href="
/index.jsp?sid=Z+Ps4y8pn72XmdFJoYat3g==">反馈-
小Q报时(19:34)
四、获取验证码
4.1 发送包:
{'Q-AUTH': 'f85f1e3186e8862e05cb65a4d471da9e677ba94691346d98',
'Q-UA': 'KQB10_GA/100047&KMTT_2/200047&JV2&111311&MicroEmulator2.0&V2',
'Accept': 'text/vnd.wap.wml,application/vnd.wap.xhtml+xml, text/html,
text/plain,
application/xhtml+xml,image/*,audio/*,application/vnd.symbian.install,x-epoc/x-sisx-app,text/vnd.sun.j2me.app-descriptor,application/java,
*/*',
'User-Agent': 'MicroEmulator-2.0',
'Connection': 'keep-alive',
'Q-GUID': '870a5ec0984f4c5183524fbe155cf00f'}
4.2 返回包:
Server: Resin/3.0.19
Last-Modified: Mon,14 Jun 2010 19:34:46 GMT
Content-Type: image/gif
Content-Length: 763
Connection: close
Date: Mon,14 Jun 2010 19:34:46 GMT
返回的包头表明是gif的图片,返回的内容当然是图片啦。保存下来,以便输入。
五、提交验证码
5.1 发送包:
http://qzone4.z.qq.com/image_verify.jsp?sid=Z+Ps4y8pn72XmdFJoYat3g==
{'Content-Length': '135', 'Q-AUTH':
'f85f1e3186e8862e05cb65a4d471da9e677ba94691346d98', 'Q-UA':
'KQB10_GA/100047&KMTT_2/200047&JV2&111311&MicroEmulator2.0&V2',
'Accept': 'text/vnd.wap.wml,application/vnd.wap.xhtml+xml, text/html,
text/plain,
application/xhtml+xml,image/*,audio/*,application/vnd.symbian.install,x-epoc/x-sisx-app,text/vnd.sun.j2me.app-descriptor,application/java,
*/*', 'User-Agent': 'MicroEmulator-2.0', 'Connection': 'keep-alive',
'Q-GUID': '870a5ec0984f4c5183524fbe155cf00f', 'Content-Type':
'application/x-www-form-urlencoded'}
qq=YOURQQNUM&extend=http%3A%2F%2F221.179.18.171%3A9001%2F3464978768937205339&verify=sqdw&nb=1&modifySKey=false&r_sid=3464978768937205339
提交的内容,在第三步中可以看到。。verify就是验证码。
5.2 返回:
Content-Type: text/vnd.wap.wml; charset=UTF-8
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie: mzalc=4sntOaKchIGBxgizMr9QTMuqxplQrsbk;Path=/;Domain=.z.qq.com;Expires=Mon, 21-Jun-10 11:34:55 GMT
Set-Cookie: mqzone_lastLoginQq=YOUQQMUM;Path=/;Domain=.qq.com;Expires=Mon, 21-Jun-10 11:34:55 GMT
Set-QCookie: qcookie_sid=4sntOaKchIGkXW1×6I%2BCxQ%3D%3D; domain=.qq.com; path=/; expires=Wed, 14-Jul-2010 11:34:55 GMT
Connection: close
Server: HTTP Load Balancer/1.0
登录成功!
自动sid=4sntOaKchIGkXW1×6I+CxQ==">进入手机QQ空间…
返回
小Q报时(19:34)
下面给出几个有用的URL:
好友可偷的URL获取:先到自己农场的页面,在自己农场的页面获得好友的可偷URL。如:
自己的农场url:
×6I+CxQ==&B_UID=YOUQQNUM
好友可偷URL:
×6I+CxQ==&myuid=80714479&KmttWap_Act=1&uin=YOUQQNUM
上面的myuid这个数好像是每个QQ号码对应一个,具体怎么算,我就不管了,直接从页面上提取。
偷某个好友的URL获取:从可偷好友页面中获得好友的相关信息:money,myuid,B_UID,uid等。如下面我的一个好友:
×6I+CxQ==&B_UID=93219804&uid=93436671&myuid=0&money=299193
一键摘取自己的农作物: 如果有成熟的,在自己农场的页面就会显示出连接,这时可以获取链接,然后进行发包。如我的:
×6I+CxQ==&B_UID=YOUQQNUM&myuid=80714479
具体程序我已经实现了一部分功能,可以见源码: