分析某教育学习平台每10秒更换二维码的签到原理
前言:仅供参考学习
本文写于2023年3月20日,请注意时效性
模拟二维码签到
自建课程,并发布签到,分别获取10s刷新前后的二维码
使用二维码解码器对这两张二维码进行解码,获得以下两个内容
https://mobilelearn.chaoxing.com/widget/sign/e?id=6000059680136&c=251295&enc=0DA06A4208CAAF0961A7EEC658E0EDF5&DB_STRATEGY=PRIMARY_KEY&STRATEGY_PARA=id
https://mobilelearn.chaoxing.com/widget/sign/e?id=6000059680136&c=206225&enc=0DA06A4208CAAF0961A7EEC658E0EDF5&DB_STRATEGY=PRIMARY_KEY&STRATEGY_PARA=id
其共有id
、enc
两个量取固定值,c
则不同,可得每10秒更换二维码图案即是由c
值造成的
id=6000059680136
enc=0DA06A4208CAAF0961A7EEC658E0EDF5
接下来我们只需要去分析这另外两个量分别所代表的东西
通过网页端发布签到活动时,可以看到浏览器对网络的监听里回调的请求url
其中id
值与activeId
同为6000059680136
,可知二维码中的id
为所发布签到活动的id唯一值
最后剩下的enc
代表什么?
进行网络抓包分析
对手机或Android模拟器进行网络抓包,在手机客户端上完成一次二维码签到,并获取在扫描二维码以签到成功时,手机向某教育学习平台服务器提交了什么请求
以下为使用Fiddler
进行网络数据抓包的结果
https://mobilelearn.chaoxing.com/pptSign/stuSignajax?enc=0DA06A4208CAAF0961A7EEC658E0EDF5&name=%E4%BD%95%E8%A1%8D%E4%BD%90&activeId=6000059680136&uid=215505229&clientip=&useragent=&latitude=-1&longitude=-1&fid=133138&appType=15
分析抓包结果,可知,当在手机客户端扫描二维码后,app会向某教育学习平台服务器提交ajax
请求,在这段请求链接中,除了name
和uid
两个新出现的量,同时还包含了我们在以上所解码的二维码中的两个量,且值固定,id(activeId)
和enc
总结
id(activeId)
为所发布的签到活动的id唯一值,enc
则作为二维码签到流程中的核心密钥
在签到所使用的ajax
请求中,出现的两个新量,其中name
代表姓名,uid
代表用户id
即只要有用户登录后的cookie,将任何一张该签到活动中的二维码图片,解码出enc值,就可以如其上的ajax
链接,构建一个GET请求,完成签到