[讨论]ABC网络学院教材下载

前面有朋友提出做一期下载岗位资格认证考试教材的教程,其实我也有研究过,但是最后发现实现比较困难,所以本文标题写着[讨论],因为我只是弄懂了基本的原理,但是并没有能实现想达到的效果,在这里把思路写下来,大家一起讨论,也许有其他大神能够有办法。

大家可以看到,登录网络学院后,对于教材之类的文档类的东西,都是通过页面方式浏览,有点类似线上的pdf,比如百度文库之类的,在浏览页面的右侧,如果有提供下载按钮,就可以进行下载,但是没提供下载按钮,则无法下载,那么没提供下载按钮的如何才能进行下载,这是我们需要解决的。

经过我的研究发现,向服务器发送下载请求,服务器必须校验三个要素,一个是课程ID,二个是服务器生成的临时令牌,三个是课程的名称,三个缺一不可。

我们打开想要下载的课程,我们看地址栏,如图所示,红色框内就是课程ID,蓝色框内就是我们的临时令牌,之所以说是临时,是因为这个令牌是随着时间不停变化的,这个后面细说。

而课程名称也很简单,在目录列表或者课程页面都有显示,如下图。但是有书名号的一定要包含书名号。

有了这三个要素,通过一定组合生成下载链接,就可以从服务器上下载这个文件,但是存在两个难点。

难点一是临时令牌生成规则,这个令牌是根据你的用户ID和时间定时生成的,因为是直接暴露在前台,所以应该没有掺杂用户密码之类的。目前还没进行测试,不清楚刷新的间隔是多久,因为令牌长度是32位,所以猜测应该是经过了MD5之类哈希算法加密的,如果是MD5,可以通过穷举法破解,有些网站可以在线破解。

难点二就是文件下载的权限问题,除了上传者,只要超级管理员能够全站下载,要想全站下载,就要搞到超级管理员ID,能搞到密码当然最好,但是显然不可能。

破解的思路是用两个账号通过单一变量进行测试,破解令牌的生成规则,然后搞到超级管理员ID,结合这两个条件就可以实现全站下载。我用html写了个下载页面,可以下载你有权下载的教材文件,有兴趣的可以发进内网自己研究研究,老规矩改后缀zip。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

3条评论

留下评论

您的电子邮箱地址不会被公开。