http://azhus.com/thread-16-1-1.html
如图所示,是两个登录方式的抓包截图(httpwatch是个非常好的抓包工具,各位可以在论坛搜索一下,有下载的)
注: DZ论坛的API接口都一样,如果你要修改本篇分析数据内容的话,只需要把 azhus.com改成其他论坛域名即可. (转载请著名出处啊..)
第一种方式,我是直接在论坛首页抓包.这种登录的好处是,如果帐号没有密保的话,一个POST就可以直接登录.
- POST地址: http://azhus.com/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1
-
- POST数据:fastloginfield=username&username= + 【帐号】 + &password= + 【MD5加密(密码)】 + &quickforward=yes&handlekey=ls
复制代码
如果帐号没有密保的话,在登录成功的情况下会返回以下两种结果:
- <blockquote><?xml version="1.0" encoding="utf-8"?>
复制代码
如果返回上述两种其一,这样说明登陆成功了.若返回:
- <?xml version="1.0" encoding="utf-8"?>
- <root><![CDATA[<script type="text/javascript" reload="1">if(typeof errorhandle_ls=='function') {errorhandle_ls('', {'type':'1'});}</script><script type="text/javascript">showWindow('login', 'member.php?mod=logging&action=login&auth=***
复制代码
说明密码正确但需要密保了.此时就需要多次跳转了,比较麻烦.数据包1里面可以看到,当帐号有密保的时候,会多出一个GET.
- GET数据: http://azhus.com/member.php?mod=logging&action=login&auth= + 【auth】 + &referer=http%3A%2F%2Fazhus.com%2F&infloat=yes&handlekey=login&inajax=1&ajaxtarget=fwin_content_login
复制代码
上面这个GET中的auth是什么呢?通过测试数据包可以看到,其实就在第一个POST中返回的数据里面,设法取出来即可.
抓包数据中可以看到,当把密保问题和答案都填写完后,又有一个POST.如下
- POST地址: http://azhus.com/member.php?mod=logging&action=login&loginsubmit=yes&handlekey=login&loginhash= + 【loginhash】 + &inajax=1
复制代码
上面这个POST中, formhash可以从上一步的GET返回中取到,loginhash也是从GET返回数据里获取. auth就是第一步返回的,一直沿用即可.
至于最后一个参数
【经过UTF8编码后的密保答案】,是有个规律的 ,我用"这个 +1a,"作为密保答案,测试出的规律为:
空格替换为+号,中文和符号替换成UTF8编码,数字字母不替换.
好了,这样就可以登录成功了!
当然了,还有第二种登录方式:
我是从登录页面:
http://azhus.com/member.php?mod=logging&action=login
抓取的数据包,如图二和数据包2所示.
这里可以发现,这个页面的登录只有一个POST,其实是非常方便的.
- POST地址: http://azhus.com/member.php?mod=logging&action=login&loginsubmit=yes&loginhash= + 【loginhash】 + &inajax=1
复制代码
这个POST中的loginhash和formhash从哪里来么?其实只要通过GET地址:
http://azhus.com/member.php?mod=logging&action=login
,从返回的网页源码中取出即可.
只要一个POST ,就可以登录成功啦!
附录:
一.返回的数据中有以下几种:
1. *** 欢迎您回来 ****现在将转入登录前页面 (这种属于登陆成功
2. ***登录失败,您还可以尝试****次*** (这种属于密码错误
3. ***请选择安全提问以及填写正确的答案*** (这种属于密码正确但有设置密保且密保答案填写错误
4. ***密码错误次数过多,请 15 分钟后重新登录** (这个就不多做解释了,顾名思义
5. ***抱歉,密码空或包含非法字符*** (这个有的时候会因为网络错误什么的而出现,如果不是真的没填写密码,那肯定就是因为网络错误了
6. <?xml version="1.0" encoding="utf-8"?><root><![CDATA[<script type="text/javascript" reload="1">window.location.href='http://azhus.com/./';</script>]]></root>
(这个说明登录成功,如果是浏览器,这个会显示为欢迎页面.