登陸過程 頂 原

登陸過程

分析方法

  1. 使用HTTP抓包工具獲取微博登陸過程的HTTP包數據;
  2. 分析主要的登錄頁面的 請求頭,響應頭,post參數信息;
  3. 分析登錄過程中利用的加載的js信息;

抓包可能有很多圖片信息,直接過濾。 過濾圖片

重點關注帶有login先關字段的URL 抓包信息

重點關注如下區域的信息 重點關注信息

這裏我就直接上登錄分析結果。

第一步

GET訪問 :https://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=&rsakt=mod&client=ssologin.js(v1.4.18)&_=1479274345685

其中su指代用戶名【經過BASE64編碼後

抓包數據:

訪問成功

訪問結果:

sinaSSOController.preloginCallBack({"retcode":0,"servertime":1479274346,"pcid":"ja-3e2faa2906000fb601eb32268497ee26f018","nonce":"LQNTRW","pubkey":"EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443","rsakv":"1330428213","uid":"6041902159","exectime":8})

格式化後:

重點信息	Name		Type		Value
	否		retcode		object		0
	是		servertime	object		1479274346
			pcid		object		"ja-3e2faa2906000fb601eb32268497ee26f018"
	是		nonce		object		"LQNTRW"
	是 		pubkey		object		"EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443"
	否		rsakv		object		"1330428213"
	否		uid			object		"6041902159"
	否		exectime	object		8
	是     pinCode

訪問失敗

請求失敗則獲取不到重要的登錄信息,想辦法解決。

第二步

POST訪問: http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.18)

抓包數據:

需要準備POST的參數:

是否固定	參數名			參數值
	是		entry           weibo
	是		gateway         1
	是		from             
	是		savestate       7
	是		useticket       1
	是		pagerefer        
	是		vsnf            1
	否		su              MTcxODQ1MDM0Njg=
	是		service         miniblog
	否		servertime      1479274381
	否		nonce           QC24GW
	是		pwencode        rsa2
	否		rsakv           1330428213
	否		sp              168c045a164d28bbf5c516721448b9d560ad0acece2fd61c08712742da0764a1ca7150bf0094c8e380eef42f493ba783e1d610c6564a3445783b14cdf957ec620f07ba083c5d5560b366203930cb187cd207d99e39e8a5c3c2b8baf3f731dbbe9b985798b5214b9b3a2abaf0c636a53b7e5878124055bfdfbc3910b43395d7b3
	是		sr              1024*820
	是		encoding        UTF-8
	是		prelt			190
	是		url             http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack
	是		returntype      META
可選參數:
	是		door			驗證碼的值[只有需要驗證碼的時候需要]

注意:返回的參數是否固定,可以通過多次登錄微博,查看參數是否變化。

POST參數來源:

參數			來源
su				用戶名base64編碼
servertime		前次訪問獲得
nonce			前次訪問獲得
rsakv			前次訪問獲得
sp				密碼經過rsa加密所得

訪問成功

成功返回:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title>新浪通行證</title>


<script charset="utf-8" src="http://i.sso.sina.com.cn/js/ssologin.js"></script>
</head>
<body>
正在登錄 ...
<script>
try{sinaSSOController.setCrossDomainUrlList({"retcode":0,"arrURL":["http:\/\/passport.97973.com\/sso\/crossdomain?action=login&savestate=1510810372","http:\/\/passport.weibo.cn\/sso\/crossdomain?action=login&savestate=1"]});}
		catch(e){
			var msg = e.message;
			var img = new Image();
			var type = 1;
			img.src = 'http://login.sina.com.cn/sso/debuglog?msg=' + msg +'&type=' + type;
		}try{sinaSSOController.crossDomainAction('login',function(){location.replace('http://passport.weibo.com/wbsso/login?ssosavestate=1510810372&url=http%3A%2F%2Fweibo.com%2Fajaxlogin.php%3Fframelogin%3D1%26callback%3Dparent.sinaSSOController.feedBackUrlCallBack%26sudaref%3Dweibo.com&ticket=ST-NjAyMzIwMzgxMg==-1479274372-ja-FDEC9B35BBE7FD284B9E4FBB1D53F68A&retcode=0');});}
		catch(e){
			var msg = e.message;
			var img = new Image();
			var type = 2;
			img.src = 'http://login.sina.com.cn/sso/debuglog?msg=' + msg +'&type=' + type;
		}
</script>
</body>
</html>

重要信息:

跨域請求: http://passport.weibo.com/wbsso/login?ssosavestate=1510810372&url=http%3A%2F%2Fweibo.com%2Fajaxlogin.php%3Fframelogin%3D1%26callback%3Dparent.sinaSSOController.feedBackUrlCallBack%26sudaref%3Dweibo.com&ticket=ST-NjAyMzIwMzgxMg==-1479274372-ja-FDEC9B35BBE7FD284B9E4FBB1D53F68A&retcode=0

訪問失敗

自行處理。

第三步

請求跨域URL http://passport.weibo.com/wbsso/login?ssosavestate=1510810372&url=http%3A%2F%2Fweibo.com%2Fajaxlogin.php%3Fframelogin%3D1%26callback%3Dparent.sinaSSOController.feedBackUrlCallBack%26sudaref%3Dweibo.com&ticket=ST-NjAyMzIwMzgxMg==-1479274372-ja-FDEC9B35BBE7FD284B9E4FBB1D53F68A&retcode=0

訪問該url,會重定向到:http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack&sudaref=weibo.com

成功請求

最終返回:

<html><head><script language='javascript'>parent.sinaSSOController.feedBackUrlCallBack({"result":true,"userinfo":{"uniqueid":"6023203812","userid":null,"displayname":null,"userdomain":"?wvr=5&lf=reg"}});</script></head><body></body></html>

重要信息:

  • result: 返回登陸是否成功信息
  • userinfo:返回用戶信息
    • userdomain:返回用戶的主頁【反問用戶主頁一般會有重定向】

請求失敗

關於用戶主頁

使用HttpClient,設置自動重定向,不需要關心本段。

請求個人主頁:

登陸成功後,訪問http://weibo.com/?wvr=5&lf=reg

返回重定向:

  • 一種情況: /username/home?wvr=5&lf=reg
  • 還有一種情況: /u/6023203812/home?wvr=5&lf=reg

情況一

訪問重定向地址:http://weibo.com/username/home?wvr=5&lf=reg

繼續重定向:http://weibo.com/nguide/interest

繼續重定向:http://weibo.com/nguide/interests

最後重定向到:http://weibo.com/hgfdodo/home

此時訪問成功。

情況二

不需要再次重定向,訪問 http://weibo.com/u/6023203812/home?wvr=5&lf=reg 其中6023203812?wvr=5&lf=reg都是userinfo信息中獲取的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章