微信小程序爬虫遇到 token 的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Arabot9
V2EX    微信

微信小程序爬虫遇到 token 的问题

  •  
  •   Arabot9 2019-09-17 02:43:27 +08:00 7684 次点击
    这是一个创建于 2226 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在写一个小程序爬虫,但 token 一小时就过期了,希望实现自动获取 token 功能。抓包发现获取 token 的 post 中有下面这些参数:

    { "code": "061DUBm620Tz8S0Oq5q62GdFm62DUBmh", "appid": "wxf8e9886ac9480eba", "sign": "c2b542186ec81e639fb638599949cc76", "nonceStr": "d52uu1kuwqe22wj6fa3h1eh", "stm": 1568651077913 } 

    加密方式为字符串拼接 md5 加密,字符串拼接函数需要传入三个参数:{"code":"061DUBm620Tz8S0Oq5q62GdFm62DUBmh","appid": "wxf8e9886ac9480eba",},公钥,上一次的 token ;

    用抓到的数据测试过最后加密结果是对的,nonceStr 生成和时间戳都已经解决,appid 可以写死,就是 code 不太清楚是否可以模拟生成,测试发现写死仍然无法返回新的 token,源码里 code 相关代码如下:

    default.wxLogin({ method: "post", query: { code: g.code, appid: (0, m.MINI_APP_INFO)().miniAppId } }); 

    抓了几个 code 发现首尾有一点点相似

    061bXNmv0Yfcti14YUpv0BkGmv0bXNmW 061DUBm620Tz8S0Oq5q62GdFm62DUBmh 071eoBRe2vLbvI0AlOOe2txzRe2eoBR8 

    请教下各位大大这个 code 是否可破之,感谢!

    14 条回复    2021-01-05 15:50:18 +08:00
    lhx2008
        1
    lhx2008  
       2019-09-17 07:53:30 +08:00 via Android
    你看一下小程序的登录机制,登录的时候,小程序生成一个和用户有关的唯一码 appid,发给服务器,服务器再拿 appid 和 token 去微信服务器拿一个临时的 code,然后服务器可以考虑做或者不做处理
    lhx2008
        2
    lhx2008  
       2019-09-17 07:54:52 +08:00 via Android
    名词我有点忘了,可能有点混乱
    guansixu
        3
    guansixu  
       2019-09-17 08:40:29 +08:00
    没办法伪造,调用的微信小程序的登录 API
    silverbooker
        4
    silverbooker  
       2019-09-17 12:01:19 +08:00
    你说的这个 code 是 wx.login() 方法生成的 code 吧。理论上是没办法破的,你找找相关资料试试吧。

    参考:

    https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html

    https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
    Arabot9
        5
    Arabot9  
    OP
       2019-09-19 22:06:00 +08:00
    @silverbooker 不破解的话 有接口可以访问获取吗
    Arabot9
        6
    Arabot9  
    OP
       2019-09-1922:06:24 +08:00
    @guansixu 有专门的接口来获取这个 code 吗
    yc97
        7
    yc97  
       2019-09-30 14:28:50 +08:00 via iPhone
    需要传入第三个参数 第一个 e.data 大佬是如何知道是这个的 求解
    Arabot9
        8
    Arabot9  
    OP
       2019-10-21 03:32:25 +08:00
    @yc97 你弄的也是某搏小程序吗
    yc97
        9
    yc97  
       2019-10-28 08:40:15 +08:00 via iPhone
    @Arabot9 是的 这个登录没办法解决 可以用自动化测试工具来获取 某监控用的就这个方法
    Arabot9
        10
    Arabot9  
    OP
       2020-01-17 17:41:42 +08:00
    @yc97 用啥工具搞的 我用 mitmdump 证书始终有问题 可能安卓版本太高了 安全验证加强了
    codererrr
        11
    codererrr  
       2020-04-15 22:59:28 +08:00
    解决了吗
    Arabot9
        12
    Arabot9  
    OP
       2020-09-18 00:02:21 +08:00
    @codererrr 没有弄了 没啥好玩的了
    douleL
        13
    douleL  
       2021-01-05 14:22:23 +08:00
    请问 nonceStr 和 sign 是什么规则生成的
    douleL
        14
    douleL  
       2021-01-05 15:50:18 +08:00
    某搏小程序你进展到哪步了吗
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6053 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 02:14 PVG 10:14 LAX 19:14 JFK 22:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86