已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP > 源码

标题: 江西省高校校园防疫自动签到PHP程序

作者: @Ta

时间: 2020-07-29发布,2020-07-29修改

点击: 3412

Jiangxi-University-Health-Check-in

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

PHP版本 江西省普通高等学校 校园防疫 健康签到 自动签到程序
发布者:https://nowtime.cc/php/1041.html
项目地址:https://github.com/PrintNow/Jiangxi-University-Health-Check-in

抓包过程

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

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

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

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

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

请往下看分析过程

分析过程

  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

使用方法

  1. 修改 Singleton.php 第 11 行 学校代码(这个你往下翻有个 江西省100所高校代码
  2. 修改 Singleton.php 第 14 行 你的学号
  3. 然后通过访问 http://你的域名/Singleton.php 即可
  4. 或者通过 CLI 运行 php Singleton.php

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


[隐藏样式|查看源码]


『回复列表(4|隐藏机器人聊天)』

1.

此时一位嘟囔着 反挂机宣言 的行人将要走过。。。
红米Note4超高配版(银色)

(/@Ta/2020-07-29 11:32//)

2. 还有记得反挂机宣言的啊
(/@Ta/2020-07-29 12:17//)

3. @水木易安,你这么说我还挺害怕的,反挂机宣言 啥意思
(/@Ta/2020-07-29 12:35//)

4. 看到了mui,这玩意怎么还没死啊,17年我用的时候就说要死了
(/@Ta/2020-07-29 13:00//)

回复需要登录

9月7日 03:43 星期天

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1