自动健康打卡|FUCK_jiankangdaka 官方文档

Posted by Elli0t on 2020-07-12

github 链接在文末

使用说明

使用前安装 PyYaml 库

python3 -m pip install PyYaml

目前一些信息需要自己填写在 config.yaml 中:

  • 编号
  • X-CSRF-Token
  • Cookie
  • 高德地图 API 的 key(可选,作用是获取位置和经纬度,高德给 eli0t 的 API 使用配额应该足够学校所有人打卡。调用量上限(次/日)300000、并发量上限(次/秒)200)

API 调用:

  • 高德 API
  • ipify API

由于一直未找到第一个和简道云通信的数据包(找到的最开始的数据包也是包含 Cookie 的,而且这个 Cookie 一直用到打卡完成),所以在使用前需抓包知道自己的 Cookie 和 X-CXRF-Token。

位置信息

位置信息是通过使用者 IP (ipify API),结合高德 API 获取的,所以会有很大误差。而且当使用者开了代理,位置会直接变为代理服务器位置。

使用者可以通过参数 -c 使用自己在 config.yaml 中配制的的准确位置或者使用参数 -i 使用当前 ip 所在位置。

脚本编写过程

首先用手机抓包,查看所有交互信息

0712000

使用多个用户的包进行分析,发现规律

Stream_all

进行测试编写

Cybm91 elry-Mac ~LibraryMobile Docum

慢慢完善,地理编码用的是高德的 API。 开发指南

middl

一点建议

由于🦑填报信息的记录仅仅只是根据一个数值来的,而且这个数值未经过加密🔐,所以很容易通过修改去穿越填报信息以及给任意的人员打卡。

任意人员打卡

一个人可以给全寝室、全班甚至全校打卡😓,而且打卡的内容可以随意改变。意思就是张三可以给李四打卡,打卡的信息用的却是王五的。

任意时间打卡

健康打卡管理员设置了只能每日下午两点之前进行健康打卡,这个判断是通过一个时间戳进行的。我们可以通过修改提交的时间戳伪造打卡时间

demo: 我在下午三点进行打卡,打卡提交的时间戳是今天上午的七点

穿越打卡

可以一天打完以后所有的卡

穿越打卡和任意人员打卡都测试成功了,下图是将后天的卡给打了(因为不能泄露个人信息,所以两个情况看起来都是一样的,我就只放一张图了)

time

项目源码

github : FUCK_jiankangdaka

演示视频