百趣云 百趣云的博客

江西智慧教育打卡协议

⚠️ 本文最后更新于2024年12月16日,已经过了154天没有更新,若内容或图片失效,请留言反馈

自动打卡

最近听学弟说要毕业了,还要实习打卡,问我有没有什么办法?我原以为今年依然是蘑菇钉,那直接使用好了,但是学弟说今年全江西省都更换了实习打卡的平台,换到了江西智慧教育,话不多说,那就开始动手吧
2024-12-16T02:01:51.png

直接上Stream开始抓包(苹果使用这个还是比较方面抓包的)

1.打开Stream,开启抓包
2.进入登录页面,开始登录
3.过滤多余的抓包数据,我们只针对http://sxsx.jxeduyun.com这个域名进行筛选

    http://sxsx.jxeduyun.com:7779/portal-api/app/index/login

最终我看到了这样的一个接口
那肯定是登录接口了,那就尝试尝试模拟走一遍?

我们先看到了他的参数有这些

       $datas = ["appLogin"=>true,"loginAccount"=>$data['loginAccount'],"password"=>$data['password'],"appUserId"=>"","loginUserType"=>"student","enrollmentYear"=>$data['enrollmentYear']];

但是呢Password是个加密密码?于是准备下手看看是如何加密的,然后碰巧我使用明文密码进行登录,成功了???

那password直接使用明文也可以咯?
那我们开始封装代码

登录接口

    /**
     * 登录
     */
    public function login()
    {
        $data = Request::post();
        
        // 验证数据
        if($data['loginAccount'] == ''){
            return ResponseUtils::error('账号不允许为空');
        }else if($data['password'] == ''){
            return ResponseUtils::error('密码不允许为空');
        }else if($data['enrollmentYear'] == ''){
            return ResponseUtils::error('请选择毕业年份');
        }
        
      
        
        $url = 'http://sxsx.jxeduyun.com:7779/portal-api/app/index/login';
        
        $datas = ["appLogin"=>true,"loginAccount"=>$data['loginAccount'],"password"=>$data['password'],"appUserId"=>"","loginUserType"=>"student","enrollmentYear"=>$data['enrollmentYear']];
        $res = $this->curl_post($url,$datas);
        $responseData = json_decode($res, true);

        if($responseData['code'] == 200){
             $token = $responseData['data']['token'];

       
 

            // 用户存在,直接返回登录成功
            return ResponseUtils::successData([ 'token' => $token,"message"=>'登录成功']);
        } else {
          

            Db::table('sign_user')->insert([
                'name'=>$name,
                'loginAccount' => $data['loginAccount'],
                'password' => $data['password'], // 不加密密码
                'enrollmentYear' => $data['enrollmentYear'],
                'addTime' => date('Y-m-d H:i:s'),
                'last_login_time' => date('Y-m-d H:i:s'),
                'last_login_ip' => Request::ip(),
                'token' => $token
            ]);
            
            return ResponseUtils::successData([ 'token' => $token]);
        }
      }else{
           return ResponseUtils::error($responseData['msg']);
      }
       
    }

打卡接口

那登录成功肯定是远远不够的,我们从登录接口的信息中可以看到返回了一个token,这个token可以拼在Authorization里面使用
于是我们开始模拟打卡一下,然后开始抓包他的接口

同样也是很轻松的拿到了

   http://sxsx.jxeduyun.com:7779/portal-api/practice/autonomyClock/add

参数如下:

           $sign_data = [
                "autonomyId" => $id,
                "userId" => $userId,
                "nickName" => $name,
                "clockAddress" => $user['address'],
                "fileId" => $uploadResult['data'],
                "clockTime" => date("Y-m-d H:i:s"),
                "clockType" => "签到",
                "clockContent" => ""
            ];

剩下的就是自动封装模拟一遍即可

By 百趣云 阅读量:569 On