前面有朋友提出做一期下载岗位资格认证考试教材的教程,其实我也有研究过,但是最后发现实现比较困难,所以本文标题写着[讨论],因为我只是弄懂了基本的原理,但是并没有能实现想达到的效果,在这里把思路写下来,大家一起讨论,也许有其他大神能够有办法。
大家可以看到,登录网络学院后,对于教材之类的文档类的东西,都是通过页面方式浏览,有点类似线上的pdf,比如百度文库之类的,在浏览页面的右侧,如果有提供下载按钮,就可以进行下载,但是没提供下载按钮,则无法下载,那么没提供下载按钮的如何才能进行下载,这是我们需要解决的。
经过我的研究发现,向服务器发送下载请求,服务器必须校验三个要素,一个是课程ID,二个是服务器生成的临时令牌,三个是课程的名称,三个缺一不可。
我们打开想要下载的课程,我们看地址栏,如图所示,红色框内就是课程ID,蓝色框内就是我们的临时令牌,之所以说是临时,是因为这个令牌是随着时间不停变化的,这个后面细说。
而课程名称也很简单,在目录列表或者课程页面都有显示,如下图。但是有书名号的一定要包含书名号。
有了这三个要素,通过一定组合生成下载链接,就可以从服务器上下载这个文件,但是存在两个难点。
难点一是临时令牌生成规则,这个令牌是根据你的用户ID和时间定时生成的,因为是直接暴露在前台,所以应该没有掺杂用户密码之类的。目前还没进行测试,不清楚刷新的间隔是多久,因为令牌长度是32位,所以猜测应该是经过了MD5之类哈希算法加密的,如果是MD5,可以通过穷举法破解,有些网站可以在线破解。
难点二就是文件下载的权限问题,除了上传者,只要超级管理员能够全站下载,要想全站下载,就要搞到超级管理员ID,能搞到密码当然最好,但是显然不可能。
破解的思路是用两个账号通过单一变量进行测试,破解令牌的生成规则,然后搞到超级管理员ID,结合这两个条件就可以实现全站下载。我用html写了个下载页面,可以下载你有权下载的教材文件,有兴趣的可以发进内网自己研究研究,老规矩改后缀zip。
现在教材也没法下载了
应该部分可以下载吧
提供下载按钮的可以,没有下载按钮的 您的方法我试着好像不可以了