admin 管理员组

文章数量: 887021

CMCC

模拟登陆就是搞明白浏览器登陆的工作方式,使用喜欢的语言来编制自己的软件来模拟浏览器的过程。在分析CMCC-EDU登陆过程中,我使用的工具是 IE9 HTTP Analyzer V7.

         IE9自带的开发人员工具(按F12)可以实现网络抓包,使用过程也比较简单,而且可以过滤一些浏览器插件的网络数据包,但是在使用过程中我发现有个bug,最好能结合HTTP Analyzer来对照,避免出错。但是来分析大概的流程还是很方便的。

HTTP Analyzer V7 能够对包括IE在内的任何软件进行抓包,可以很方便的检测自己软件发送的数据包是否正确。

1.获取登陆数据包的步骤

1、打开IE9,打开空白网页
2、按F12,F12开发人员工具,再切换到网络界面,选择清除 cookie 和 缓存

	3、点击 “开始捕获按钮”,开始网络抓包

  4、在地址栏输入测试网址 ,登陆CMCC-EDU校园网

可以看到下方已经抓到很多数据包:


 5、登陆成功后按下停止捕获按钮,开始分析。

 

2.网络登陆过程分析

面对这么多的数据包,其实有很多是没有用的,例如一些图片的下载,这样可以简化分析流程,主要分析的内容也是POSE请求和带参数的GET。

2.1先找出核心登陆的网络地址,一般是POST 提交保密的的消息到服务器。

可以看到有一条数据是在单击时(也就是点击登陆按钮时)提交的。



查看其post数据的请求正文:


果然是刚输入的手机号码和密码及验证码,这样关键数据就得到了。

再看请求的网址: 

http://218.200.239.185:8888/portalserver/user/unionlogin.do?brasip=221.182.42.30&braslogoutip=221.182.42.30&area=union&wlanuserip=10.100.67.23&redirectUrl=example/cnunion/cnunion&domain=@chinamobile

多次登陆之后其他的部分都没变化,唯一变化的就值红色的IP 地址。通过wlanuserip和查看自己的IP确认这个就是本机的IP地址。这样这个POST数据的网络地址也可以构造了。

2.2在下登陆按钮之前,还有一个序号为22 POST请求, 查看请求正文


中间的数据比较多,但比较明显可能有变化的就是 划线的两个参数,因为服务器也不是检测上传的每个数据。通过在全文中索,发现其中的httpSessionId=D13B289473F303961EDB55E226481FB7就是服务器设置的 cookie,这个是在刚访问登陆界面(第2条请求时)服务器就在本机设置的。


而scriptSessionId=F51325060A121C027454092A7BD8B4E4583 在第6 GET次的engine.js文件中出现。

但是发送给服务器的的内容在末尾却多了3位字符。

2.3查看该脚本的内容:


通过搜索发现,是在原_origScriptSessionId的基础上加了一个范围1000的随机数。虽然现在我们不懂它是什么意思,但是也还是可以使用语言去模拟。这样又解决一个参数问题。同时也要多一个请求 即:GET enjin.js   文件,提取中间的_origScriptSessionId。

         关于其他的参数,经过多次的登陆抓包比较,发现每次都一样,并且在前文中也没有发现相关的信息,所以暂时认为是常量字段。直接按照结构构造就行,有问题再回来看。

2.4在第7 次请求中,响应正文是一张验证码

 关于本验证码的识别在 这里.

而且每次的GET请求地址都相同,那服务器靠什么区分呢。经过分析,那就是每次请求的不同之处 cookie ,那么在GET时就要带上cookie.

 

2.5在第4次请求中,GET网址带了参数 (以&= ***的形式)

http://218.200.239.185:8888/portalserver/user/unionlogin.do?brasip=221.182.42.30&braslogoutip=221.182.42.30&area=union&wlanuserip=10.100.67.23&redirectUrl=example/cnunion/cnunion&domain=@chinamobile


发现和2.1POST的网址相同,下面是他的参数(使用HTTP Analyzer V7查看)。


唯一的变化也是红色的IP地址,所以下面要去看这个IP地址从哪来的。

 

2.6通过全文搜索IP    wlanuserip=10.100.67.23,在请求1的响应数据中发现这个地址


这是Location 地址,也就是下一步跳转的地址。查看请求2,果然访问的是这个地址。

 

 

这样IP地址也获取到了。

 

2.7 cookie

Cookie 在本次登陆中多次使用到,下面就查看cookie的来源,经过看看只有在请求1和请求2中的响应头中有Set-COOKIE 字段,而请求1是访问的www.baidu,其设置的cookie对我登陆没用,只有请求2中的cookie才是正确的。



3、 登陆流程整体的分析

上面的是具体的登陆过程分析,现在是整体登陆过程的的汇总


4、总结

通过以上的分析,基本弄清CMCC-EDU登陆的流程,我也使用MFC 成功实现了登陆   软件下载。 模拟网页登陆就是个心细活儿,只要好好利用工具多次比对每次的差异,就能容易的实现过程分析。以上的过程也不是一次就分析成功的,需要在自己的模拟登陆程序中一步步的去检测,对比是服务器的返回否相同(比如确定哪些提交数据时每次都相同的,不需要特别的构造)。

本文标签: CMCC