前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >指点天下自动打卡及相关分析

指点天下自动打卡及相关分析

作者头像
布衣者
发布2021-09-07 11:33:58
1.1K0
发布2021-09-07 11:33:58
举报
文章被收录于专栏:布衣者博客

指点天下

指点天下是我学校目前使用的一款软件,用来日常管理学生和相关通知发布的软件。在疫情期间用于我们学校的进行每日身体健康情况打卡,用以确保学生在家情况,同时通过打卡时的定位信息来确定学生是否出行。

在上半年里,每天都坚持打卡,未从中断。但放暑假了,人相对容易忘记打卡的事情,每天忘记打卡的同学也越来越多了。自己也害怕忘记,因此想着通过python程序来解决打卡问题。

简单自动打卡

在之前的半个月里自己已经通过简单的程序来实现打卡了,通过简单的抓包提取到headers中token和每次打卡上传的内容,以后每天程序定时提交就行了。但昨天,自己早上没注意打卡信息,直到老师在群里通知谁谁没打卡抓紧时间打卡的信息里才知道自己今天的自动打卡失效了。自己想可能是因为token失效的原因,原本想直接提取新的token继续实现,又碰到同学让我帮他打卡几天,于是为了以后方便就下决心去分析token。

分析token

token内容是什么自己也不清楚,于是小白的我尝试用base64进行解码,发现第一段是一段编码信息,第二段是手机号和生成和过期时间的时间戳,第三段解密不开。

第一段的内容是一个加密算法的名称:HS256,因此百度搜索以下:明白了token使用JWT实现Token认证。最后一段是根据密钥对前面两段内容进行加密的字符串。密钥自己不知道,当时甚至想去暴力破解,后来搜索一下,不太现实,大公司的密钥都设置的很复杂。

获取token

想要伪造token时不可能了,因此要想避免token失效就必须重新获取token,想到指点天下每段时间就要重新登录,于是想到是登录时获取的。

开始抓包登录时的包,结果证明了自己的猜测。确实如此,但也遇到了一个新的问题,自己的密码上传的时候是加密的,长度为32位,猜测是md5,但自己用密码进行md5加密后,但结果与抓包内容不同,因此肯定是加入其他字符后又采用的md5。

app自己不会分析,心想放弃。百度搜索了下指点天下,发现有网页版登录界面但学生用户无法登录,不过却有意外发现,在上传的表单中也是用的md5加密,而且md5加密后的结果时相同的。 于是就从网页版的js入手,自己本身都是小白不太懂,就看了看js的内容,在源码中发现竟然直接明文写出来加密方式,没有任何的js加密。(小声吡吡:这也太不负责任了吧)。

知道了加密方式,于是直接使用了登录的api和随机伪造的设备识别deviceToken来获取token,解决过期问题。

定位问题

定位问题很好解决,定位是获取的手机反馈的经纬度和地理位置。我直接就用我抓包的数据即可,我同学的也是通过查他老家的位置,手动修改相关的地理位置。 自己耍点小聪明,通过高德开放平台来获取相关的经纬度、行政区以及较为准确的地理叫法。为后面能在学校里自动签到打好基础。

成品出炉

问题解决差不多,下一步就是写代码。(初步完成,但在完善。) 项目地址: CODING仓库

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年08月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 指点天下
  • 简单自动打卡
  • 分析token
  • 获取token
  • 定位问题
  • 成品出炉
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档