MOOC网课爬虫逆向(二)

补充一下关于开小号的问题,事实上对于我的mooc线代课,你开小号只能通过分数知道错了几个,但是不能知道哪个错了以及正确答案是多少——我将它理解为防止别人开小号
那你暴力开小号去硬排列组合,我可以很负责的告诉你,第一周的测试有50道题,你这样去排列组合,你孙子都得不到答案,这就是爬虫的必要性,而且不能无脑爬,用啥啥selenium大法好行不通
而且事实上,所有可以用selenium的都可以用请求来解决,而且更快

1.1开个小号,不然抓包不小心就提交了

1.2Burpsuite抓包

1.2.1整体分析

抓什么包其实很讲究的,

按下开始测试的按钮后,就会直接跳题出来

这里按F12打开浏览器开发者选项


直接暂停了,没关系,点这个,然后刷新一下页面就可以,断点就不会端下来了

这里先说一下为什么直接抓包,不看看源代码,这个你可以自己试试,源代码经过了混淆,真的我不想解密了


如果真的有人想要看看如何解密的话,可以参考我的另一篇文章https://zhuanlan.zhihu.com/p/545539451 链接: 知乎链接


为啥是知乎呢?因为那篇文章csdn审核没过,也是关于爬虫的。。。。
然后你看看开发者工具的网络中,看看按下提交后有啥请求

ok三个请求,现在能看就看看呗

1.2.2提交后请求的分析

1.2.2.1mocQuizRpcBean.submitAnswers


载荷和回答如上

这个回答没什么好说的,看下值是啥样的,可以留着之后作爬虫请求是否成功的验证
着重看下载荷:

{"paperDto": {"tid": 1241562141,"tname": "测验1","aid": 2719632665,"submitStatus": 1,"type": 2,"objectiveQList": [], //这里我删了点东西"subjectiveQList": [],"questions": null,"answers": null,"evaluateVo": null,"showAnalysis": false,"autoSubmit": false,"allowSwitchPageCount": -1,"switchPageCount": 0,"submitType": 1,"deviceType": null,"examId": -1,"name": null,"submitCount": null,"deadline": null,"totalScore": null,"subjectiveTotalScore": null,"objectiveTotalScore": null,"subjectiveScore": null,"objectiveScore": null,"evaluateJudgeType": null,"evaluateNeedTrain": null,"evaluateStart": null,"evaluateEnd": null,"answererId": 1029744437,"analyseEnable": null,"scoreReleaseTime": null,"examTime": null,"startTime": 1666781339872,"submitTime": null,"tryTime": 3,"usedTryCount": 102,"ip": null,"isCorrectSubject": null,"scoreReleaseType": null,"examType": null,"memberId": null,"nickname": null,"realName": null,"studentNumber": null},"preview": false
}

对没错我删减了点东西,删了什么呢?

这是个列表,里面是题目,有十个,我就拿其中一个来看

{"id": 3321780599,"gmtCreate": null,"gmtModified": null,"stdAnswer": null,"examId": null,"testId": null,"type": 1,"fillblankType": null,"score": 1,"options": null,"position": 1,"allowUpload": null,"title": "<p>&lrm;<span style=\"font-family:宋体;\"  >齐次线性方程组</span><img src=\"https://edu-image.nosdn.127.net/_PhotoUploadUtils_6e5cb362-e158-481a-8744-46083c6e756b.png\"  /><span style=\"font-family:宋体;\"  ></span><span style=\"font-family:宋体;\"  >有非零解的充分必要条件是(&nbsp; ).</span></p>‌<p>&lrm;<br ></p>‌","plainTextTitle": "齐次线性方程组【图片】有非零解的充分必要条件是( ).","titleAttachment": null,"description": null,"sampleAnswerJson": null,"judgerules": null,"analyse": null,"optionDtos": [{"id": 84162913447,"content": "<p><img src=\"https://edu-image.nosdn.127.net/_PhotoUploadUtils_ff50a986-ff0f-46bb-8005-d1db463201ec.png\"  /></p>","answer": null,"analyse": null,"selectCount": null}, {"id": 384162913447,"content": "<p><span style=\"font-size:14px;font-family:'Calibri',sans-serif;\"  ><img src=\"https://edu-image.nosdn.127.net/_PhotoUploadUtils_c22b0038-1854-42fb-adf5-efe53204123a.png\"  /></span><span style=\"font-size:14px;font-family:宋体;\"  >且<img src=\"https://edu-image.nosdn.127.net/_PhotoUploadUtils_643d5964-4b87-4a74-ac56-ae5c0dc743d9.png\"  /></span></p>","answer": null,"analyse": null,"selectCount": null}, {"id": 284162913447,"content": "<p><span style=\"font-size:14px;font-family:'Calibri',sans-serif;\"  ><img src=\"https://edu-image.nosdn.127.net/_PhotoUploadUtils_8f1c6639-4bc2-4b4d-abff-1f7fab7650c3.png\"  /></span><span style=\"font-size:14px;font-family: 宋体;\"  >或<img src=\"https://edu-image.nosdn.127.net/_PhotoUploadUtils_d606e641-5697-44ae-af49-8fb25fc35ce6.png\"  /></span></p>","answer": null,"analyse": null,"selectCount": null}, {"id": 184162913447,"content": "<p><img src=\"https://edu-image.nosdn.127.net/_PhotoUploadUtils_dcd83fd2-b610-454a-91a1-56c7a2938555.png\"  /></p>","answer": null,"analyse": null,"selectCount": null}],"judgeDtos": null,"sampleAnswers": null,"titleAttachmentDtos": null,"ojTimeLimit": null,"ojMemLimit": null,"ojSupportedLanguage": null,"ojNeedInput": null,"ojSupportedLanguageList": null,"ojTryTime": null,"ojCases": null,"correctNumber": null,"totalScore": null,"correctRate": null,"avgScore": null,"mocQuestionTagDto": null,"canEdit": null,"edsQuestionId": null,"isOptionRandom": null,"optionNumber": null,"submitCount": null}

这里就不让你们猜意思了
首先是整个大的字典里:

tid:用来区分哪次测验的,每个测验都不同,比如第一周测验和第二周测验就不同,但是第一周的测验下不同提交相同
aid:每次测验的都不同,对于每次进行的测试,这是唯一的!

暂停一下,为什么是唯一的呢?这就是很玄幻的一个地方了。

尝试更改,让它+1

!!!发现了什么?没错,我们来到了另一个次元,这完全不是线代课程那次检测的!

其实每个人每次的提交都是靠这个aid区分的!
那意味着什么?
1.我可以通过aid跳跃次元,跃迁题目
2.别人正在做的时候,得知他的aid,可以直接“帮”他提交!让他零分!
当然这不提倡,这需要一定的社会心理学知识,我们要共同富裕才行,而且你会碰到一个无法避免的问题——这里是看以往测验记录里通过改aid来实现跃迁的,只能看,不能改!
那细心的人可能已经看到之前我贴的那图里居然有答案?那可不可以通过这种方法找到答案呢?巧合罢了,老实说我都没想到原aid+1会出现这个。。。。。其实线代的aid输进去,是不会有答案的。

路已经断了?别急,这次第一个请求,虽然的确是最重要的一个

1.2.2.2mocQuizRpcBean.getQuizInfo

载荷和回答如下:

{"code": 0,"result": {"tid": 1241562141,"aid": 2719632665,"termId": 1468219449,"targetAnswerform": {"id": 2719632665,"tid": 1241562141,"aid": 2719632665,"subjectAid": null,"submitTime": 1666782061667,"score": 0.00,"effectStatus": 0,"answererId": 1029744437,"name": null,"type": 2,"testId": 1241562141,"examId": -1,"totalScore": 10.0,"finalScore": 0.0,"objectiveScore": 0.0,"subjectiveScore": null,"objectiveTotalScore": null,"subjectiveTotalScore": null,"subjectTestId": null,"extraScore": null,"effectiveScorePlusExtra": null,"deadline": null,"email": null,"nickname": null,"studentNumber": null,"mocAuthenticatedMemberDto": null,"scorePubStatus": null,"draftSubjectiveBonusScore": null,"reviewStatus": null,"draftSubjConfirmed": null,"subMocAnswerForms": null,"evaluates": null,"aggreId": null,"aggreScore": null,"showScore": true,"groupName": null,"submitType": 1,"correctNumber": null},"startTime": null,"lastModifiedTime": null,"deadline": 1672587000000,"lastSubmitTime": -1,"duration": 3600,"effectScore": 0,"userScore": null,"totalScore": 10.0,"totalTryCount": 3,"usedTryCount": 102,"examScorePubStatus": null,"scorePubStatus": null,"effectScoreRule": 2,"description": "","name": "测验1","evaluateScoreReleaseTime": null,"ansformInfoList": null,"questionCount": 10,"bonusScore": null,"analyseSetting": 1,"showAnalysis": false,"needFillMemberDetailInfo": null,"allowSwitchPageCount": -1,"tryTime": null,"examTime": null,"scoreReleaseTime": null,"scoreReleaseType": null,"evaluateJudgeType": null,"evaluateStart": null,"evaluateEnd": null,"objectTestId": null,"subjectTestId": null,"taskStatus": null,"examType": null},"message": "","traceId": "","sampled": false
}

那这里的aid和tid是和上面那个请求对应的,很好理解
再看载荷和回答


载荷就是把之前第一个请求的载荷parpedto字典的大部分给传进去
响应就是也是返回了大部分原来的东西,其实没啥变化好吧。
好了都分析了一遍了,感觉没啥重要的东西,咋办啊?
难道之前的csrfKey是关键?
当然不是啦,之前我们就改了改aid就实现次元跃迁了,这个csrfKey会有用吗?
那怎么办?

下一步,上Burpsuite呀!

MOOC网课爬虫逆向(二)相关推荐

  1. MOOC网课爬虫逆向(一)

    MOOC网课爬虫逆向(一) 进入大学发现线代课居然还有MOOC网上课程的要求,就是具体的会网上做题,大家一般都是满分,自己不去拿满分就很亏,白送的分直接丢了,那有人好好作答可能答错,有人直接开小号刷, ...

  2. python爬虫实例网易云-爬虫实战(二) 用Python爬取网易云歌单

    最近,博主喜欢上了听歌,但是又苦于找不到好音乐,于是就打算到网易云的歌单中逛逛 本着 "用技术改变生活" 的想法,于是便想着写一个爬虫爬取网易云的歌单,并按播放量自动进行排序 这篇 ...

  3. 【爬虫】牛客网简易爬虫(二)用Selenium看看你投过简历的公司这个月哪些有笔试+笔试时间

    在 牛客网--求职--笔试日历 可以笔试时间每天都有哪些公司有笔试,如下图 一.需求 1.看看这个有笔试的公司哪家你还没看过. 2.看看自己投过的公司哪家这个月有笔试及笔试的时间. 当然,你还是得把你 ...

  4. 《工程伦理》网课第十二章课后习题答案

  5. 2018年要过去了,年初说好要上完的网课呢?

    硅谷Live / 实地探访 / 热点探秘 / 深度探讨 前不久,网上疯传了一篇名为<这块屏幕可能改变命运>的文章,随后又疯传了一篇辟谣文. 于是,大众开始热议"一块屏幕" ...

  6. 《工程伦理》网课第一章课后习题答案

    工程伦理1-13章汇总: <工程伦理>网课第一章课后习题答案_u011895157的博客-CSDN博客 <工程伦理>网课第二章课后习题答案_u011895157的博客-CSDN ...

  7. 应用计算机测定线性电阻电路图和实物图,中国大学MOOC电子线路设计、测试与实验二网课答案...

    中国大学MOOC电子线路设计.测试与实验二网课答案 字体大小:大 | 中 | 小 2020-04-26 19:57 阅读(1017) 分类: 中国大学MOOC电子线路设计.测试与实验二网课答案 打开右 ...

  8. python网络爬虫技术课后答案_尔雅《Python网络爬虫技术(2020年秋季学期)》网课答案...

    尔雅<Python网络爬虫技术(2020年秋季学期)>网课答案 法律的一般含义是() 答:法律是由国家创制并保证实施的行为规范 下列属于急症手术的是 答:肝破裂 脾气统摄血液的功能,实际上 ...

  9. 猿人学·爬虫逆向高阶课

    我跟 virjar 出了一套爬虫课(猿人学·爬虫进阶培训课),包含:安卓逆向抓取.JS 高阶逆向抓取.安卓群控抓取.容器定制化等. 实际上我去年就在做这个爬虫课了,一直没有放到网课平台上公开宣传,但是 ...

最新文章

  1. 为什么机器学习算法难以优化?一文详解算法优化内部机制
  2. python下载安装教程3.8.1-Linux安装Python 3.8.1
  3. 07 总结ProgressDialog 异步任务
  4. react学习(60)--ant design中getFieldDecorator
  5. C++笔记-使用std::funcional代替函数指针
  6. 【英语】Flying By Dream---English
  7. 如何在Mac上直接删除文件而不将其发送到垃圾箱?
  8. SpringCloud知识点复习(第一次)
  9. Openssl建立CA系统
  10. 【推荐】智慧城市顶层设计及其建设规划实施解决方案可行性研究报告合集(共107份,963M)
  11. k线形态python_Python量化分析之K线模式识别
  12. java中的Cipher类
  13. 第3章 结构之法——电话号码对应英语单词
  14. 理解Pointers In C++:第一重
  15. Unity流水账14:GL、Graphics及CommandBuffer
  16. DUTOJ-1003: Zeratul的军训游戏
  17. 路缘石滑模机施工赶作业原理和相应模具管理
  18. 英语名字12个月的来历
  19. 153是移动还是联通
  20. [附源码]计算机毕业设计居家养老服务系统小程序Springboot程序

热门文章

  1. [GO项目]开源免费在线客服系统-真正免费开源-GOFLY0.3.3发布-极简强大Go语言开发网页客服...
  2. 后台管理系统权限管理实现步骤
  3. 【渝粤题库】陕西师范大学180105 推销策略 作业(高起专)
  4. 几种Jsp连接数据库方法!
  5. 通过python封装接口商品ID采集商品详情数据
  6. 面对强者恒强局面 安防如何运用好资本杠杆?
  7. 修改默认aosp语言为中文
  8. 互联网+时代的人生必修课—逆商
  9. BAT的员工都去哪儿了?
  10. 鲁棒可微分,美团、上交大等提出 DARTS- 神经网络搜索算法