Python实现今日校园自动签到

本篇仅提供思路,代码不能直接运行哦

每天早上8点都要打开今日校园APP签到,填表。。就不能让人好好睡个觉啊!!为了解决这个头疼的问题,想到了用python中的Request库进行发送请求

鲁迅说:人类越来越懒、发明越来越多!创造来源于我们的生活啊!

Python实现今日校园自动签到_第1张图片

话不多说,开始造车!



国际惯例!打开Burp抓抓抓 在点击提交按钮后,捕获到了三个POST请求 让我们来逐条分析

Python实现今日校园自动签到_第2张图片

1. 第一个POST的作用: 判断"wid":“422"任务是否存在,存在返回"message”:“SUCCESS” ,不存在则返回"message":null  【这里提一下”422“的含义,简单的说就是老师发布这个表给同学们填,这个任务的编号是422。】

2. 第二个POST的作用: 查询"wid":"422"任务的基本信息,为啥这里说是基本信息,因为只返回了这个任务创建者是谁,什么时候发布的等等,并没有返回这条任务的详细内容

3. 第三个POST的作用: 聪明的小伙伴们应该已经猜到了,第三个POST请求返回的就是 “message”:“SUCCESS” 以及"wid":”422“这个任务的详细信息, 内容是老师让我们填的一些个人状况,家庭住址什么的

数据包分析完了,很明显,重点在第三条,第三条数据的Body中的"wid":“422"是关键,我们只要找到这个"wid”:"num"中的num 再构造Request请求就OK了!

怎么找呢,想到了一种穷举的思路,用指定范围的数值来构造 422~999的POST请求 ,再传到Body里 发送Request请求 完成提交

在构造Body时发现了个更好玩的地方,如果把422改成423 就会返回”您无需填写该信息收集,请勿代填“ 说明这个任务不是我们学院老师发布的,也就是说如果是其他学院发布的任务 我想提交都提交不了!! 这里是重点 我们可以利用系统这个判断机制进行不断的发包 如果返回不是SUCCESS就是没提交成功(没提交成功不代表没发包成功),则继续构造包 发送包,如果返回SUCCESS那就皆大欢喜 成功提交了,咱们的最终目的就完成了



下面看代码,可不要被这一堆代码给吓到哦,head,body部分都是复制粘贴的Burp抓的数据包

import requests
import json
import time

num = 454
rangeSet = num + 1
cookies = {'MOD_AUTH_CAS': 'YcxNA903马赛克583063221'}

global null
null=''
headers = \
    {
        "Host": "hnu马赛克y.com",
        "Connection": "close",
        "Content-Length": "3596",
        "Accept": "application/json, text/plain, */*",
        "Origin": "https:马赛克pd马赛克om",
        "X-Requested-With": "XMLHttpRequest",
        "User-Agent": "Mozilla/5.0 (Linux; Android 10; Redmi K20 Pro Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.92 Mobile Safari/537.36 yiban/8.1.9 cpdaily/8.1.9 wisedu/8.1.9",
        "Sec-Fetch-Mode": "cors",
        "Content-Type": "application/json",
        "Sec-Fetch-Site": "same-origin",
        "Referer": "https://hnua马赛克wec-coun马赛克llector-马赛克x.html?collectorWid=422",
        "Accept-Encoding": "gzip,deflate",
        "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"
    }

while num

最后给代码加上了休眠

为了让程序间接性的向服务器发送数据包,我们用到了Python中的time库 ,使用sleep()函数让程序运行一会歇一会,这一路上走走停停 顺着少年漂流的痕迹 ~

最终部署在服务器上的运行效果展示:

Python实现今日校园自动签到_第3张图片

你可能感兴趣的:(编程相关)