天马行空工作室

 找回密码
 加入天马
搜索
查看: 4137|回复: 4

post 华为网盘一键登录,自动签到————转载

[复制链接]
发表于 2013-2-1 08:58:07 | 显示全部楼层 |阅读模式
post 的地址是 http://login.dbank.com/loginauth.php?nsp_app=48049
参数如下:
  • response 最关键的参数,经过一系列计算得到
    1.用户名+":NSP Passport:"+密码 进行32位md5计算。(小写)
      测试时可以利用以下地址的在线工具进行计算
        http://app.baidu.com/yiten_md5?keyword=MD5
    2. 上面的结果再+":"+nonce 进行32位md5计算.(小写),得到的就是response的值。
  • nsp_user 用户名
  • nsp_cid 从表单中提取
  • nonce  从表单中提取
  • m=1 固定值。
提交以上参数之后如果参数正确的话返回json数据里面包含了一个k的数据。
最终再提交一下以下地址就行了。k的值从上面的返回中获取,如果没有看到k的值肯定是你前面提交的参数错了。
http://login.dbank.com/loginauth.php?k=K的参数
附,测试登录过程。
测试帐号 test@chenall.tk 密码: wMtA8HscF6G0Zv6V
打开http://login.dbank.com/loginauth.php?nsp_app=48049
提取到需要的数据
<input type="hidden" id="nonce" name="nonce" value="4fdf0b700b0052.91924864">
<input type="hidden" id="nsp_cid" name="nsp_cid" value="802fdd1049992984cf49a1cd0fc7545c">

首先计算response的值:
test@chenall.tk:NSP Passport:wMtA8HscF6G0Zv6V
经过md5计算后得到
aead43fd1435a2087a12c4ac9d21e56c
再进行一次md5计算
aead43fd1435a2087a12c4ac9d21e56c:4fdf0b700b0052.91924864
得到
9cd84c2500a6013ef3bd1441919132b6
现在参数全部有了直接提交(用get或post都可以)
http://login.dbank.com/loginauth.php?nsp_app=48049&m=1&nonce=4fdf0b700b0052.91924864&nsp_cid=802fdd1049992984cf49a1cd0fc7545c&nsp_user=test@chenall.tk&response=9cd84c2500a6013ef3bd1441919132b6
返回的数据如下(如果是其它信息肯定是你的参数有误或用户密码错误改正之后重新提交)
{"retcode":0,"k":"IFi6cylxBlRZsRw21JIiDtxO6ORZGun5VLViD52OOuj3dN0ylLoeHDw3ruaa1S4RFTP1Y0q8vazTvjDUjJiSu0aFSWIQ9lEgIbPSdcKCCDo%3D"}
再提交一次就成功登录了
http://login.dbank.com/loginauth.php?k=IFi6cylxBlRZsRw21JIiDtxO6ORZGun5VLViD52OOuj3dN0ylLoeHDw3ruaa1S4RFTP1Y0q8vazTvjDUjJiSu0aFSWIQ9lEgIbPSdcKCCDo%3D

另外要说一点,看起来挺安全的,因为没有传输密码。但是好像有一个问题。最终的登录地址目前没有任何的限制。
只要得到这个地址,你换一台电脑直接提交这个地址就可以登录了,这也是一个安全隐患。不知有没有时间限制,我试了昨天生成的地址,今天还能用。

大家可以试试点击上面的链接,看看是不是还能正常登录。

2012-06-21   经测试修改了密码之后,上面的自动登录链接依然有效。
2012-06-25   一个星期过去了,依旧。
2012-06-26  发现其它的也是一样,只要获取到最终的API参数,无需登录或密码都可以操作。比如签到不需要登录就行了。

题外话,本来想把网盘签到的post方法也找出来,里面最重要的参数是nsp_key,这个是把很多的数据整在一起进行MD5计算,看了好久还没有找全所有的需要的数据。无奈只能放弃,如果您有已经研究出了计算的方法,不妨分享一下。
2012-06-26 已经找出计算方法,现在可以直接快速签到了。^_^,chrome真是强大,调试一下很快就找出来了,以前还傻傻的慢慢看JS源码。。


快速自动签到方法,只需点击一个链接就可以自动签到无需密码,无需登录。本文测试帐号的自动签到链接如下
http://api.dbank.com/rest.php?nsp_svc=com.dbank.signin.signin&anticache=383&nsp_sid=wuTubNKuCQi1muaOXx-uu4FjnYp182zozF58ZBk1HSNkFwED&nsp_ts=1341032380236&nsp_key=9AC41E0B0DD240F97361F87483131667&nsp_fmt=JS&nsp_cb=_jqjsp

如果获取到上面的链接呢?最简单的方法直接抓包就行了,用chrome就可以直接抓包了。
当然可以手工打造一个链接,要生成这个链接首先要知道各个参数是如何得来的。
上面的链接参数解释(其中不重要的参数可以不要)

第一个nsp_svc是固定的,表示要进行签到
nsp_svc=com.dbank.signin.signin
第二个参数是一个随机数字,不重要,你可以固定使用以下数值
anticache=383
nsp_sid 身份标志信息,这个就是cookie里面的session的值
nsp_sid=kuTubNkuCQi19uaOXxiuu4FjMYp18kTozF5VnBk1HnAkFwEv
这个不需要解释了,是一个时间串,不是很重要,同样可以固定
nsp_ts=1341032380236
验证信息,通过多种参数进行组合再进行MD5加密的结果
nsp_key=9AC41E0B0DD240F97361F87483131667
以下是固定的,不重要,不用管它。
nsp_fmt=JS
nsp_cb=_jqjsp

看了上面的参数列表,基本上都是现成的,只有nsp_key需要额外获取。
这个nsp_key的获取方法。
1.把上面除了nsp_key之外的参数按字母正向排序一下,得到如下结果。
anticache=383
nsp_cb=_jqjsp
nsp_fmt=JS

nsp_sid=wuTubNKuCQi1muaOXx-uu4FjnYp182zozF58ZBk1HSNkFwED
nsp_svc=com.dbank.signin.signin
nsp_ts=1341032380236
2.去掉参数中间的"="合成一串得到
anticache383nsp_cb_jqjspnsp_fmtJSnsp_sidwuTubNKuCQi1muaOXx-uu4FjnYp182zozF58ZBk1HSNkFwEDnsp_svccom.dbank.signin.signinnsp_ts1341032380236

3.获取cookie里面的secret的值接在上一步的前面比如是325c8b0ee26aa42cd4a4c20326a97a98
那最终得到的字符串如下
325c8b0ee26aa42cd4a4c20326a97a98anticache383nsp_cb_jqjspnsp_fmtJSnsp_sidwuTubNKuCQi1muaOXx-uu4FjnYp182zozF58ZBk1HSNkFwEDnsp_svccom.dbank.signin.signinnsp_ts1341032380236
4.把上一步的字符串进行MD5计算就得到了nsp_key的值了
9AC41E0B0DD240F97361F87483131667

我算是知道为什么华为网盘的页面打开速度反应偏慢了。你想啊,每打开一个页面,都需要调用10个以上的API,每个都需要经过一系列的MD5计算能不慢吗。而且经过这么复杂的计算个人认为没有增加什么安全性可言,只是人为增加客户端和服务端的计算量。

建议参考一下其它的网盘,登录后可以直接调用API,而不需要这么麻烦。
像天翼网盘,登录之后直接
http://cloud.189.cn/userInfoJson.action 就可以获取用户信息
http://cloud.189.cn/userSign.action  签到
看起来又直观,又简单,真搞不明白华为为什么要搞得这么复杂,我猜测可能是为了和其它API的调用保持一致吧。

EDIT2: 经测试,那些参数中有一些是可以不要的。重新整理一下必备参数如下.只有需要两个参数了。
nsp_sid=wuTubNKuCQi1muaOXx-uu4FjnYp182zozF58ZBk1HSNkFwED
nsp_svc=com.dbank.signin.signin
nsp_ts 参数后面的值可以不要,但nsp_ts字符串须要有
结合在一起的字符串就是这样子的。

nsp_sidwuTubNKuCQi1muaOXx-uu4FjnYp182zozF58ZBk1HSNkFwEDnsp_svccom.dbank.signin.signinnsp_ts
前面加上secret的值计算MD5比如我的得到
325c8b0ee26aa42cd4a4c20326a97a98nsp_sidwuTubNKuCQi1muaOXx-uu4FjnYp182zozF58ZBk1HSNkFwEDnsp_svccom.dbank.signin.signinnsp_ts

计算的MD5值为501171C21D5EDB90BFF7080F2002F348
最终的链接地址为因为参数少了,链接里面的参数也要相应的减少.
http://api.dbank.com/rest.php?nsp_svc=com.dbank.signin.signin&nsp_ts=&nsp_sid=wuTubNKuCQi1muaOXx-uu4FjnYp182zozF58ZBk1HSNkFwED&nsp_key=501171C21D5EDB90BFF7080F2002F348


发表于 2013-2-1 17:07:24 | 显示全部楼层
好犀利的说,要是能具体的演示就更好了,我这种新手完全看不懂哦

点评

好犀利的说,你能不能换句话,在好几个帖子里,你用着同样的话。  发表于 2013-2-1 21:22
 楼主| 发表于 2013-2-1 17:37:01 | 显示全部楼层
我也看不懂,呵呵呵。叫老大来试试
发表于 2013-2-6 03:06:09 | 显示全部楼层
这玩意你自己认真看几次包的数据就明白了。
 楼主| 发表于 2013-2-6 11:35:10 | 显示全部楼层
额 谁做下成品出来哒
您需要登录后才可以回帖 登录 | 加入天马

本版积分规则

Archiver|手机版|小黑屋|天马行空工作室 ( 京ICP备12003429号  

GMT+8, 2020-5-28 23:24 , Processed in 0.036360 second(s), 20 queries .

Powered by Discuz! v8

© 2010-2014 post 华为网盘一键登录,自动签到————转载 - RC文化 天马行空工作室

快速回复 返回顶部 返回列表