刘裕洪的Blog

  • 首页
  • 归档

  • 搜索
leetcode selenium docker 破解 mysql Spring Deepin 逆向 Android Smail 反编译 Linux ThinkPHP jQuery JavaScript html5 css python VMware Centos c# uwp 安朗 校园网 sofether 路由器 交叉编译

博学谷密码签到分析

发表于 2020-04-16 | 0 | 阅读次数 309

博主经常错过博学谷的签到被记旷课(委屈巴巴

所以来分析一波博学谷的签到

1. 登录

抓包得到登录请求的url为http://stu.ityxb.com/back/bxg_anon/login
方法是post,带三个参数,登录成功后可以取到cookie

automaticLogonusernamepassword
是否自动登录用户名密码

2. 获取课程列表

url为http://stu.ityxb.com/back/bxg/course/getHaveList
在请求头里带上获取到的cookie

pageNumberpageSizetype
页码页面大小(应该是指每页显示多少)类型(不明,根据抓出来的写了1)

返回

{
    "code": null,
    "errorMessage": null,
    "resultObject": {
        "items": [
            {
                "id": "607d7bcd53d94923aab98cead154b06a",
                "category_id": null,
                "name": "Android移动应用基础教程(Android Studio)(第2版)",
                "course_no": null,
                "active": true,
                "photo": "https://attachment-center.boxuegu.com/data/picture/univ/2019/05/23/14/2ac19a0746b946ab9de0828a53b3a0ff.png",
                "vedio": null,
                "keyword": null,
                "seq": 0,
                "brief_introduction": null,
                "relation_ids": null,
                "create_person": null,
                "create_time": null,
                "recommend": false,
                "url": null,
                "is_relation": false,
                "resource_url": null,
                "page_number": null,
                "book_number": null,
                "press": null,
                "price": null,
                "apply_college": null,
                "coop_count": 0,
                "coopStatus": 0,
                "is_new": false,
                "outline_url": null,
                "is_archive": false,
                "totalCount": 3,
                "videoNums": 0,
                "pptNums": 0,
                "questionNums": 0,
                "additionalNums": 0,
                "pdf_url": null,
                "pdf_status": null,
                "pdf_name": null,
                "sys_course_id": null,
                "sampleUrl": null,
                "new_notice_status": 1,
                "new_resources_status": 1,
                "collegeNums": 0
            },
            {
                "id": "286fa422f8c04617ac2bc56d797b3d11",
                "category_id": null,
                "name": "微信小程序开发实战",
                "course_no": null,
                "active": true,
                "photo": "https://attachment-center.boxuegu.com/data/picture/univ/2019/06/03/13/13de084bf9084a67a1173877e43b9000.jpg",
                "vedio": null,
                "keyword": null,
                "seq": 0,
                "brief_introduction": null,
                "relation_ids": null,
                "create_person": null,
                "create_time": null,
                "recommend": false,
                "url": null,
                "is_relation": false,
                "resource_url": null,
                "page_number": null,
                "book_number": null,
                "press": null,
                "price": null,
                "apply_college": null,
                "coop_count": 0,
                "coopStatus": 0,
                "is_new": false,
                "outline_url": null,
                "is_archive": false,
                "totalCount": 0,
                "videoNums": 0,
                "pptNums": 0,
                "questionNums": 0,
                "additionalNums": 0,
                "pdf_url": null,
                "pdf_status": null,
                "pdf_name": null,
                "sys_course_id": null,
                "sampleUrl": null,
                "new_notice_status": 1,
                "new_resources_status": 1,
                "collegeNums": 0
            }
        ],
        "totalCount": 2,
        "totalPageCount": 1,
        "pageSize": 100,
        "currentPage": 1
    },
    "success": true
}

3. 获取签到列表

url为http://stu.ityxb.com/back/bxg/my/sign/conditionList
在请求头里带上获取到的cookie

course_idpageNumberpageSizesignNamesignTypestuSignStatus
课程id页码页面大小(同上)签到名称(可空)签到类型(可空)学生签到状态?(不明)

返回

{
    "code": null,
    "errorMessage": null,
    "resultObject": {
        "items": [
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "95b078939739439982c32d9a2a7f61a9",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-04-15 20:18:54",
                "signName": "202041520181",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 3356,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-04-15 20:18:06",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "210cf808281e4a99ae38543918f6a998",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-04-15 17:02:35",
                "signName": "202041517136",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 1558,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-04-15 17:01:41",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "a57f6a3cc2ee40a483080f407b7b7c91",
                "stuSignStatus": 4,
                "stuSignStatusName": "旷课",
                "stuSignTime": null,
                "signName": "202041420730",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 5444,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-04-14 20:07:36",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "54894c6113e34e93a345302627d57d72",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-04-08 17:24:16",
                "signName": "202048165011",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 2075,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-04-08 16:50:14",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "72c38a0c4104498ab722a4f4f1aea8ad",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-04-07 20:14:18",
                "signName": "202047201343",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 4850,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-04-07 20:13:47",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "4dc756d9ddbb48b3ad4265057404ad61",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-04-01 17:09:36",
                "signName": "202041162937",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 6983,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-04-01 16:29:40",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "725221013951477a840b0566b67c6f03",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-03-31 20:21:43",
                "signName": "202033120215",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 8723,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-03-31 20:21:07",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "f5c4193427434ee98e04099b5b5c4682",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-03-25 20:20:11",
                "signName": "2020325201920",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 3257,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-03-25 20:19:25",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "f27bcff670c84407a4b2ee4e684515a1",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-03-25 16:55:03",
                "signName": "2020325165143",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 7359,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-03-25 16:51:55",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "620580f05edb4777a1296af7a22240e6",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-03-24 20:48:44",
                "signName": "20203242084",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 3027,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-03-24 20:08:08",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "27be8c47d14e46fbadfcfc21a653fc0e",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-03-18 19:37:22",
                "signName": "2020318193657",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 2754,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-03-18 19:37:01",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "259d2210476d4ec1ad6f7da468188c98",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-03-18 16:11:37",
                "signName": "2020318161112",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 7737,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-03-18 16:11:13",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "b3462e490ce8497cb32949914b990b7d",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-03-17 20:15:12",
                "signName": "2020317201311",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 4961,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-03-17 20:13:18",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "6038ee576cdc4f06a366d612cf440b46",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-03-11 20:23:31",
                "signName": "2020311202259",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 2101,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-03-11 20:23:04",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "0fa42e881a2e417a9bc388a1c525b6b5",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-03-11 16:10:40",
                "signName": "202031116917",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 6360,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-03-11 16:09:25",
                "squadId": "97457868eb234c1fa293988156e7460e"
            },
            {
                "studentId": "cf806fa4104b4ee1a1c76ae921a36843",
                "signId": "7e505b327267416690d363f5bf67f89e",
                "stuSignStatus": 1,
                "stuSignStatusName": "出勤",
                "stuSignTime": "2020-03-10 19:37:53",
                "signName": "202031019557",
                "signType": 2,
                "signTypeName": "数字签到",
                "signNum": 4165,
                "signStatus": 2,
                "signStatusName": "已结束",
                "signTime": "2020-03-10 19:06:07",
                "squadId": "97457868eb234c1fa293988156e7460e"
            }
        ],
        "totalCount": 16,
        "totalPageCount": 1,
        "pageSize": 50,
        "currentPage": 1
    },
    "success": true
}

4. 签到

url为http://stu.ityxb.com/back/bxg/my/sign/number/updateSignStatus
在请求头里带上获取到的cookie

sign_idsign_num
签到id签到密码

签到密码可以暴力遍历出来

5. 总结

总的来说要想实现自动签到还是比较简单的
思路就是登录获取到课程列表,然后根据课程列表的课程id再去获取签到列表,判断签到状态,如果签到进行中,就开个线程暴力遍历密码post

image
博主已经粗略实现了,但还不完美,就不放出来了,有兴趣的小伙伴可以自行实现

  • 本文作者: 刘裕洪
  • 本文链接: https://liuyuhong.ml/archives/boxuegu
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# leetcode # selenium # docker # 破解 # mysql # Spring # Deepin # 逆向 # Android # Smail # 反编译 # Linux # ThinkPHP # jQuery # JavaScript # html5 # css # python # VMware # Centos # c# # uwp # 安朗 # 校园网 # sofether # 路由器 交叉编译
springboot+mybatis多表联查报错
腾讯课堂自动送花
  • 文章目录
  • 站点概览
刘裕洪

刘裕洪

死宅一只 🎵爱听EDM 📷摄影萌新

28 日志
14 分类
26 标签
RSS
Github E-mail Twitter
Creative Commons
Links
  • Mystery0
  • 梧桐
© 2019 — 2021 刘裕洪
由 Halo 强力驱动
|
主题 - NexT.Mist v5.1.4