天域至尊 发表于 2019-3-31 14:14

某校自动连接内网,知网论文免费下载器-编写实录

本帖最后由 天域至尊 于 2019-3-31 14:38 编辑

首先声明,伸手党可以撤了,我编写的下载器仅仅是针对于内部人员使用,你拿到程序没有学校的用户名密码也无法下载论文,拿到源码也不行!

这篇文章主要讲解技术与思路,供学习研究使用,任何想要违法乱纪的请绕道,我国拥有一套完整的刑法,而且这个程序也无法帮助你违法乱纪。

有法可依、有法必依、执法必严、违法必究。

好了,接下来讲解具体过程,我们知道知网针对于各大高校和各省市大型图书馆是有开放的,在这些地方你可以直接下载论文而无需付费。所以,想免费下载论文的绕道其他省市各大图书馆官网。

那么,因为某高校的网络安全的特殊形势,学生在校内接入的统一是外网,而非学校内网。那么学生其实就无法享受到学校所提供的资源。而导致知网在该校名为开放,实为关闭,只因网络安全形势严峻。

但是呢,该校使用了juniper的VPN技术,留给学生一丝希望。但是操作繁琐,非专业学生需要长时间的摸索才知道怎么用,所以有基本等价于没有。

所以该校的大多数学生不得不在知网上付费下载论文,其实很多时候不理解,为什么一件很简单的事情,总会有人把它做得那么复杂,理由还有很多。大量的浪费众人的时间与精力是一件很值得自豪的事情吗?鲁迅先生讲:“浪费他人的时间就是在谋财害命。”那这种行为无异于大屠杀。

小时候埋怨某些事老师做得不好,领导做得不好,总会被怼一句,你能解决吗?你不能解决别说话。

唉,习惯了不说话,那我直接解决吧。

首先,分析正常操作流程

第一,我们要登录进入个人主页
第二,打开知网的详情页,点击下载PDF的按钮。
第三,保存PDF文件,退出登录状态,结束。

有点像把大象装冰箱里一样,但是有实力,把大象装冰箱又怎样?

首先开始解析第一步的步骤,登录,看正常的操作

首先输入用户名,密码,点击登录。

进入了个人主页


好了,登录过程完成,我们要用python模拟这个过程。

这个时候又会有人说了,这么简单的过程,你有病吗?模拟个p啊,是不是真的那么简单呢,用数据包说话—焦点访谈

祭出神器,fiddler!

我们先退出登录状态,使用fiddler抓包。开启fiddler以后,重新开始上述登录操作。

好了,数据包抓好了


请求不多,可以说是很简洁了。我们一步步的瞧

首先是第一个数据包,请求头里没啥东西,倒是post了一些数据

可以看奥第一个和第四、五个数据都是固定的,用户名和密码肯定是自己的。

再看看回复:


回复让我们跳转到https://vpn.******.edu.cn/dana/home/starter0.cgi?check=yes这个网址,其他的没什么信息了。

再看第二个数据包。第二个数据包果然是请求刚才跳转那个网址的
请求部分没啥东西。再看响应的数据包。
返回也没啥,头部没任何东西,倒是传回一个网页。

请稍等?看来是做了什么事情,不关心它做了什么事情,且看它下一步说了什么。

看第四个数据包(为啥不看第三个?第三个只是下载了个图片,看它作甚)

请求的网址:https://vpn.******.edu.cn/dana/home/starter0.cgi
Post了数据,呦呵,还starter0?看来是开始前最后一步啊,有趣。
看看他post了什么数据。


稍微一想,第一个数据肯定不是固定的吧,怎么来的?
不知道,先看后面的第三个看名字和样子应该是时间戳,其他的应该是固定的。

问题在于第一个数据是怎么来的,无非是两条路,服务器发来的,或者JS计算来的。
服务器发来的话,数据一定在前面数据包里。自己计算的话,就要找JS代码了。

首先向前面搜索下,找找,直觉告诉我,应该是前面服务器发来的。


果然是在第二个数据包里存在的,就是那个请稍等的网页。
那简单,我们把这玩意拿出来就是。
继续看第四个响应报文。

没内容,响应头告诉我们要跳到starter.cgi这个网址,从名字来看,胜利果实就在前方啊。

第五个数据包,访问了那个starter网址,没有发送任何内容,回复内容也没啥,只有一个网页。


从回复网页的标题来看,是欢迎我们啊。

第六个页面
就是访问https://vpn.******.edu.cn/dana/home/index.cgi这个网页,
请求包没啥东西,这就是个人主页,响应头没东西,只是传回了个人主页,

至此,我们登录成功了。

现在我们总结下登录时数据包的步骤。


好了,一切都那么清晰了,接下来就要我们的Python瞒天过海了。

祭出终极大杀器,Python。

首先我们伪装请求头,启用cookie,这是基本素养,不过分赘述。

然后打开学校VPN主页,数据不用保留,仅仅是模拟先打开主页的过程。

然后,我们开始构建用户名密码的post数据,传输,这是模拟第一个数据包的过程。

然后呢,我们访问check网页,去拿关键字。这是模拟第二个数据包的过程。

接下来,我们把时间戳和第二个数据包的数据传输到服务器。这是模仿第三个数据包请求的数据。

接下来访问starter和个人主页。

好了,至此所有的模拟登陆的过程就完成了。

下一节课我们就要分析VPN网址重构的问题和增加密码错误提示,登录中意外错误的自动规避功能,还有自动退出的功能。

写分析类的教程很累的,不像直接告诉你怎么做,还要一步步分析,我今天实在是累了,下一课继续讲。

这里放的源代码,已经是发行版1.1版了,上面没讲的问题代码里都解决了,我实在是懒得自己再摘出来今天讲的模拟登陆的部分了,因为里面都有,而且都在一起,看起来也方便,没必要单独拿。而且有基础的同学可以自己先看看,因为是开源代码,我注释和提示写的很多的,大家可以先学习学习。

现在总结下没填的坑,1.吾爱破解的爬虫还没写。2.树莓派第四课还没写。3.这里又有了一课待写。

最近好忙,但是一定会抽时间写好发出来。
Github:https://github.com/CtrlCandV/crawler/tree/master/JUST
百度网盘:链接:https://pan.baidu.com/s/10MwMhJcQAinfJrYx1Z2nNA 提取码:j57h

狮王 发表于 2019-3-31 16:11

感谢分享,不过免费下载论文,可以在支付宝的浙江图书馆那边下载~

Like_a_dream 发表于 2019-3-31 16:42

感谢分享 这很值得学习

天域至尊 发表于 2019-3-31 20:09

狮王 发表于 2019-3-31 16:11
感谢分享,不过免费下载论文,可以在支付宝的浙江图书馆那边下载~

这个是知道的,主要是学校有关部门处理不好自己分内的事,让人气愤。同时也是为了练手。

狮王 发表于 2019-3-31 21:36

谢谢分享~

GLZ不善言辞 发表于 2019-4-1 09:40

谢谢分享

lin632397264 发表于 2019-4-1 14:33

感谢分享
页: [1]
查看完整版本: 某校自动连接内网,知网论文免费下载器-编写实录