Skip to content

江西省普通高等学校 校园防疫 健康签到 自动签到

Notifications You must be signed in to change notification settings

Barry04/Jiangxi-University-Health-Check-in

 
 

Repository files navigation

🏫 Jiangxi-University-Health-Check-in

本仓库内容仅供学习参考,请不要依赖自动签到,确保自己提交的信息真实有效。参与抗疫人人有责

请注意,学校都是我虚构的,我并不是在 南昌大学 {滑稽},因为学校标识码它排第一,那我直接用它来讲

PHP版本 江西省普通高等学校 校园防疫 健康签到 自动签到程序

📝 抓包过程

根据老师说的,在 支付宝 -> 江西省终身学习卡 -> 小程序 -> 校园防疫 -> 健康签到 进行签到

然后我就尝试 HttpCanary APP 直接对支付宝抓包,但是我发现,并不能正常抓包,直接阻断了,只抓到一条关于 alipay.com 域名的 然后小程序提示加载失败

我就想到了支付宝可能对抓包有所屏蔽,网上搜的解决办法就是要装 XposedMagisk 之类的进行解除限制,我手机还没解锁,要解锁还得清除手机所有数据 ,嫌弃麻烦就没有再去折腾了

大概 2020-07-26 左右,心血来潮,就去解锁了,输入 TWRP,刷入 Magisk,一气呵成 ,根据网上查找的资料,在 Magisk 安装某个模块,就会将用户安装的证书转换为系统证书, 这样就可以愉快的抓包了,但是我照着做了后,并没有用,还是阻断了,支付宝小程序那里提示 加载失败 好像

最后,我在 HttpCanary 设置里发现了说推荐使用 平行空间 进行抓包,我在平行空间将支付宝添加进去,然后使用 HttpCanary平行空间抓包,果不其然,抓到了数据 发现这个签到平台加载的是一个网页,然后我在 Chrome 打开,发现没有任何限制,可以直接打开。

请往下看分析过程

🎯 分析过程

重点从第 5 点开始

  1. 发现网址 https://fxgl.jx.edu.cn/4136010403/index 中的 4136010403 有点神秘,我就去网上搜,搜索结果发现这是一个高校代码, 4136010403 代表的是 南昌大学
  2. 这个应该全省高校公用的一个系统,通过 高校代码 进行区分,然后我在教育部网站,从 全国高等学校名单 摘取了江西省部分,共计100所(不包含 成人高等学校)
  3. 然后进行登录抓包,发现需要验证 验证码 是否输入正确,这个我就想到了获取登录 SESSION,然后定时如2分钟进行访问网页进行保活
  4. 但是支付宝中,只需要登陆一次,后面无论你多久再去签到,都不用输入学号、验证码 进行登录,我觉得有点蹊跷,我就查看了 https://fxgl.jx.edu.cn/4136010403/index 源代码,在 241 行位置找到了以下登录方法
    function login(type) {
        initLogin = initLogin + 1;
        if (!type) {
            loginName = $("#loginName").val();
            yzxx = $("#yzxx").val();
            verifyCode = $("#LAY-user-login-vercode").val();
        }
    
        if (loginName == '') {
            if (initLogin != 0) {
                mui.toast('请输入学号')
            };
            return false;
        }
        var param = {
            loginName: loginName,
            loginType: loginType,
            yzxx: yzxx,
            verifyCode:verifyCode,
        };
        mui.showLoading("验证中..", "div");
        $.ajax({
            type: 'post',
            url: "public/getLoginInfoByLoginName",//路径
            data: param,
            success: function (data) {//返回数据根据结果进行相应的处理
                mui.hideLoading(loadCallback);//隐藏后的回调函数
                if (data.code == '1001') {
                    initLogin = 2;
    
                    window.localStorage.setItem('loginName',encodeURIComponent(loginName));
                    window.localStorage.setItem('yzxx',yzxx);
                    window.localStorage.setItem('loginType',loginType);
    
                    window.location.href = "public/homeQd?loginName=" + loginName + '&loginType='+loginType;
                } else {
                    if (initLogin !== 0) {
                        mui.toast(data.msg);
                    }
                    getVerify();
                }
            }
            , error: function (e) {
                mui.hideLoading(loadCallback);//隐藏后的回调函数
                mui.toast('服务异常,请稍后重试!');
                getVerify();
            }
        });
    
    }
    
  5. 重点window.location.href = "public/homeQd?loginName=" + loginName + '&loginType='+loginType; 这一段代码,发现通过 访问这个网址可以直接登录 loginName学号loginType 猜测是 登录类型,学生是 0,教职工是 1
  6. 尝试拼接参数通过这个网址登录,果不其然,可以直接登录,搞不太懂为什么要验证验证码,然后拼接此参数进行登录。不过也还好给了我们这些懒人机会
  7. 登录操作已经完成了,现在进行签到抓包了,发现也是比较简单,向 https://fxgl.jx.edu.cn/4136010403/studentQd/saveStu POST 一些参数即可
//推荐你们可以直接查看 `Singleton.php` 69行,看的比较清晰
//以下是需要 POST 的参数
province=江西省
&city=赣州市
&district=章贡区
&street=街道
&xszt=0
&jkzk=0
&jkzkxq=
&sfgl=1
&gldd=
&mqtw=0
&mqtwxq=
&zddlwz=江西省赣州市章贡区
&sddlwz=
&bprovince=江西省
&bcity=赣州市
&bdistrict=章贡区
&bstreet=
&sprovince=江西省
&scity=赣州市
&sdistrict=章贡区
&lng=113.499325
&lat=24.870886
&sfby=1

🧀 使用方法

很乐意解决你在使用过程中遇到的问题,不出意外的话我会在 24小时 内查看并回复你,欢迎 issues

  1. 修改 Singleton.php 第 17 行 学校代码(这个你往下翻有个 江西省100所高校代码
  2. 修改 Singleton.php 第 20 行 你的学号
  3. 部署到虚拟主机,然后通过访问 http://你的域名/Singleton.php 即可
  4. 或者使用 crontab 定时运行 php -f Singleton.php

    crontab 使用方法可以网上查找资料

    # Ubuntu 安装 php 方法,其它如 CentOS 可以网上搜
    sudo apt install php7.2-cli
    sudo apt install php-curl
    [可选项]推送到微信:修改 Singleton.php 第 23 行 SCKEY(参见[Server酱](http://sc.ftqq.com/3 .version))

❗ 关于 street 参数与 zddlwz 参数

基于对签到数据的改动较以往数据尽量小的原则,作详细说明(感谢 @ChiuJun > issues: street参数确定是可选项吗?
定位部分为三个环境:

  1. 支付宝环境
    支付宝环境需要 street 参数,参考支付宝H5开放文档
    street 参数由返回结果的 pois[0].addresspois[0].name 拼接而成,最后再拼接成 address.zddlwz
    address.street = result.pois[0].address + result.pois[0].name;
    //...
    var zddlwz =address.province+address.city+address.district+address.street;
    Singleton.php$street 为空,并且没有将 $street 拼接至 zddlwz ,所以造成了本签到程序提交的签到记录中缺失具体的街道信息
    考虑到大部分人的环境都是支付宝,建议将具体的街道信息加入到POST参数中
    修改 Singleton.php 第 92 行为
    "zddlwz" => $province . $city . $district . $street,//自动地理位置:省市县(区)街道 拼接结果
  2. 微信环境
    微信环境中同样需要 street 参数,并且不同于支付宝环境,微信环境中 street 参数不包含 streetNumber 信息,拼接地理位置时 zddlwz 同样需要详细到街道号。
    至于 street 参数中具体填什么,建议自行查看微信小程序开发者文档。
    address.street = addComp.street;
    //...
    address.zddlwz = addComp.province+addComp.city+addComp.district+addComp.street+addComp.streetNumber;
  3. H5环境
    H5环境 street 参数为可选项,对于H5环境的同学,不需要对 Singleton.php 做额外更改。
    var addressStr = address.province + address.city + address.district;

🎨 相关 API 说明

  1. 登录 API

    GET,需要 302 跟随,因为登录成功后会跳转至首页

    https://fxgl.jx.edu.cn/学校标识码/public/homeQd?loginName=你的学号&loginType=0

  2. 签到 API

    POST,POST 参数,请往上看 或者自己去 https://fxgl.jx.edu.cn/学校标识码/user/qdbp 页面抓包分析

    https://fxgl.jx.edu.cn/学校标识码/studentQd/saveStu

🙇‍ 感谢名单

感谢它们对本项目做出的贡献

🏫 江西省100所高校代码

‼‼‼ 人工摘抄可能有遗漏的地方,具体请以实际为准

快捷键 CTRL + F 可快速搜索你的学校

数据来源于:http://www.moe.gov.cn/srcsite/A03/moe_634/201706/t20170614_306900.html

学校名称 学校标识码 主管部门 所在地 办学层次 备注
南昌大学 4136010403 江西省 南昌市 本科
华东交通大学 4136010404 江西省 南昌市 本科
东华理工大学 4136010405 江西省 抚州市 本科
南昌航空大学 4136010406 江西省 南昌市 本科
江西理工大学 4136010407 江西省 赣州市 本科
景德镇陶瓷大学 4136010408 江西省 景德镇市 本科
江西农业大学 4136010410 江西省 南昌市 本科
江西中医药大学 4136010412 江西省 南昌市 本科
赣南医学院 4136010413 江西省 赣州市 本科
江西师范大学 4136010414 江西省 南昌市 本科
上饶师范学院 4136010416 江西省 上饶市 本科
宜春学院 4136010417 江西省 宜春市 本科
赣南师范大学 4136010418 江西省 赣州市 本科
井冈山大学 4136010419 江西省 吉安市 本科
江西财经大学 4136010421 江西省 南昌市 本科
江西科技学院 4136010846 江西省教育厅 南昌市 本科 民办
景德镇学院 4136010894 江西省 景德镇市 本科
萍乡学院 4136010895 江西省 萍乡市 本科
江西科技师范大学 4136011318 江西省 南昌市 本科
南昌工程学院 4136011319 江西省 南昌市 本科
江西警察学院 4136011504 江西省 南昌市 本科
新余学院 4136011508 江西省 新余市 本科
九江学院 4136011843 江西省 九江市 本科
江西工程学院 4136012766 江西省教育厅 新余市 本科 民办
南昌理工学院 4136012795 江西省教育厅 南昌市 本科 民办
江西应用科技学院 4136012938 江西省教育厅 南昌市 本科 民办
江西服装学院 4136013418 江西省教育厅 南昌市 本科 民办
南昌工学院 4136013421 江西省教育厅 南昌市 本科 民办
南昌大学科学技术学院 4136013429 江西省教育厅 南昌市 本科 民办
南昌大学共青学院 4136013430 江西省教育厅 九江市 本科 民办
华东交通大学理工学院 4136013431 江西省教育厅 南昌市 本科 民办
东华理工大学长江学院 4136013432 江西省教育厅 抚州市 本科 民办
南昌航空大学科技学院 4136013433 江西省教育厅 南昌市 本科 民办
江西理工大学应用科学学院 4136013434 江西省教育厅 赣州市 本科 民办
景德镇陶瓷大学科技艺术学院 4136013435 江西省教育厅 景德镇市 本科 民办
江西农业大学南昌商学院 4136013436 江西省教育厅 南昌市 本科 民办
江西中医药大学科技学院 4136013437 江西省教育厅 南昌市 本科 民办
江西师范大学科学技术学院 4136013438 江西省教育厅 南昌市 本科 民办
赣南师范大学科技学院 4136013439 江西省教育厅 赣州市 本科 民办
江西科技师范大学理工学院 4136013440 江西省教育厅 南昌市 本科 民办
江西财经大学现代经济管理 学院 4136013441 江西省教育厅 南昌市 本科 民办
豫章师范学院 4136013774 江西省 南昌市 本科
南昌师范学院 4136014437 江西省 南昌市 本科
上饶幼儿师范高等专科学校 3636000312 江西省 上饶市 专科
抚州幼儿师范高等专科学校 3636000519 江西省 抚州市 专科
江西工业职业技术学院 4136010839 江西省 南昌市 专科
江西医学高等专科学校 4136010888 江西省 上饶市 专科
九江职业大学 4136011505 江西省 九江市 专科
九江职业技术学院 4136011785 江西省 九江市 专科
江西司法警官职业学院 4136012929 江西省 南昌市 专科
江西陶瓷工艺美术职业技术 学院 4136012930 江西省 景德镇市 专科
江西旅游商贸职业学院 4136012932 江西省 南昌市 专科
江西电力职业技术学院 4136012933 江西省 南昌市 专科
江西环境工程职业学院 4136012934 江西省 赣州市 专科
江西艺术职业学院 4136012936 江西省 南昌市 专科
鹰潭职业技术学院 4136012937 江西省 鹰潭市 专科
江西信息应用职业技术学院 4136012939 江西省 南昌市 专科
江西交通职业技术学院 4136012940 江西省 南昌市 专科
江西财经职业学院 4136012941 江西省 九江市 专科
江西应用技术职业学院 4136012942 江西省 赣州市 专科
江西现代职业技术学院 4136012943 江西省 南昌市 专科
江西工业工程职业技术学院 4136012944 江西省 萍乡市 专科
江西机电职业技术学院 4136012976 江西省 南昌市 专科
江西科技职业学院 4136013419 江西省教育厅 南昌市 专科 民办
南昌职业学院 4136013420 江西省教育厅 南昌市 专科 民办
江西外语外贸职业学院 4136013422 江西省 南昌市 专科
江西工业贸易职业技术学院 4136013423 江西省 南昌市 专科
宜春职业技术学院 4136013424 江西省 宜春市 专科
江西应用工程职业学院 4136013425 江西省 萍乡市 专科
江西生物科技职业学院 4136013426 江西省 南昌市 专科
江西建设职业技术学院 4136013427 江西省 南昌市 专科
抚州职业技术学院 4136013428 江西省 抚州市 专科
江西中医药高等专科学校 4136013775 江西省 抚州市 专科
江西先锋软件职业技术学院 4136013776 江西省教育厅 南昌市 专科 民办
江西经济管理职业学院 4136013866 江西省 南昌市 专科
江西制造职业技术学院 4136013867 江西省 南昌市 专科
江西工程职业学院 4136013868 江西省 南昌市 专科
江西青年职业学院 4136013869 江西省 南昌市 专科
上饶职业技术学院 4136013870 江西省 上饶市 专科
江西航空职业技术学院 4136013871 江西省 南昌市 专科
江西农业工程职业学院 4136013872 江西省 宜春市 专科
赣西科技职业学院 4136013873 江西省教育厅 新余市 专科 民办
江西卫生职业学院 4136013965 江西省 南昌市 专科
江西新能源科技职业学院 4136014166 江西省教育厅 新余市 专科 民办
江西枫林涉外经贸职业学院 4136014167 江西省教育厅 九江市 专科 民办
江西泰豪动漫职业学院 4136014168 江西省教育厅 南昌市 专科 民办
江西冶金职业技术学院 4136014241 江西省 新余市 专科
江西管理职业学院 4136014249 江西省 南昌市 专科
江西传媒职业学院 4136014250 江西省 南昌市 专科
江西工商职业技术学院 4136014321 江西省教育厅 南昌市 专科 民办
景德镇陶瓷职业技术学院 4136014402 江西省教育厅 景德镇市 专科 民办
共青科技职业学院 4136014403 江西省教育厅 九江市 专科 民办
赣州师范高等专科学校 4136014465 江西省 赣州市 专科
江西水利职业学院 4136014476 江西省 南昌市 专科
宜春幼儿师范高等专科学校 4136014494 江西省 宜春市 专科
吉安职业技术学院 4136014504 江西省 吉安市 专科
江西洪州职业学院 4136014505 江西省教育厅 宜春市 专科 民办
江西师范高等专科学校 4136014537 江西省 鹰潭市 专科
南昌影视传播职业学院 4136014544 江西省教育厅 南昌市 专科 民办
赣南卫生健康职业学院 4136014569 江西省 赣州市 专科

About

江西省普通高等学校 校园防疫 健康签到 自动签到

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%