上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

破解超星学习通人脸识别思路

[复制链接]

7

主题

10

帖子

12

积分

开发者

Rank: 6Rank: 6

积分
12
发表于 2021-12-7 15:17:04 | 显示全部楼层 | 阅读模式
超星学习通部分课程在点进课程首页,或者点进章节时会要求手机APP扫码进行人脸识别,如下图:


将二维码解码,得到网址如下
https://mooc1-api.chaoxing.com/qr/view?uuid=a4301fc0-e226-4f63-b967-******&clazzid=*********&enc=0fe293e82912c16cf5ad8da9******


共有三个参数,uuid、clazzid和enc
clazzid可以确定为班级id,对于同一门课程是固定不变的

刷新页面获取最新二维码,解码后发现uuid和enc参数都发生了变化,并且两个参数在网页html里也同时用input标签存储,如下图

所以获取这两个参数只需要读取input标签即可,无需再解码

下一步,掏出手机,使用超星app扫码,然后fiddler抓包
需要一些基础的手机抓包技术(温馨提示:安卓6.0以下系统可以无视证书安全)

app界面显示如下


接下来按正常流程扫码验证

扫脸通过后,app一共请求了四个接口,前两个接口是检查图片id是否存在和上传图片,不重要,所以不展示。
上传完图片后返回了一个objectId,估计是图片资源对应的id,然后又请求了两个接口。
https://mooc1-api.chaoxing.com/keeper/api/receive-studylog
https://mooc1-api.chaoxing.com/qr/updateqrstatus


第二个接口返回的json数据:
{"msg":"通过",
"log":"{\"data\":{\"relationId\":0,
\"objectId\":\"********************************\"},
\"clazzId\":********,
\"ip\":\"*.*.*.*\",
\"eventTime\":1638697167662,
\"personId\":*********,
\"eventType\":5,
\"courseId\":*******}",
"enc":"8cb8980acdbf8ec2b1db8bbe71527231",
"type":3,
"status":true}


这个json格式真让人窒息,不过他里面包含了“通过”字样,八成就是这个接口了,检查post数据:


clazzid和courseid经过比对是课程自带的,永远不会变
uuid和qrcenc就是网页input标签带的
objectid是上传人脸照片返回的
failcount和compareresult是请求第三个接口返回的

所以说只要解决后三个参数即可

关于objectid:上传人脸照片不可能,我要做的是破解人脸,而不是模拟人脸,所以objectid就先瞎填一下或者填一个已经存在的objectid
failcount和compareresult先用刚刚返回的0

接下来重新触发人脸,用post请求试一下(注意uuid和qrenc是刷新变化的,不能用旧的)


成功通过人脸识别!

尝试删除failcount和compareresult参数后post请求,再次通过!

研究到这里,可以判断,超星的人脸识别是在手机本地进行的,服务器端没有进行比对,objectid随便填。

总体思路如下:
1、在二维码页面获取uuid和qrenc、classid、courseid参数
2、POST如下接口,objectid随机(注意跨域问题):

url:https://mooc1-api.chaoxing.com/qr/updateqrstatus
data:clazzId=******&courseId=******&uuid=******&qrcEnc=******&objectId=随机字符

3、数秒后二维码自动消失,可以继续学习。
后记:在我开始研究的时候,已经做好失败的准备,因为如果超星是服务器端判断人脸然后返回id,那在本地怎么操作都不能跳过检测。
在把思路写成油猴脚本并发布后,经用户反馈,发现超星的人脸识别并不只有一个版本,另一版本的二维码格式相同,但手机app扫描后请求的接口不同,但总体思路类似。


108

主题

177

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483

中秋纪念章国庆纪念章

发表于 2021-12-7 15:25:32 来自手机  | 显示全部楼层
ggnb!!!!
回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2021-12-7 16:00:33 | 显示全部楼层
yyds……
回复

使用道具 举报

0

主题

3

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 3 天前 | 显示全部楼层
脚本在哪里啊 没找到
回复

使用道具 举报

发表回复

本版积分规则

快速回复 返回顶部 返回列表