一些信息没有打码,请不要喷我。
教务系统网站: http://211.83.241.81/jwglxt/xtgl/login_slogin.html
感谢 https://www.v2ex.com/t/433971#reply11 几位经验丰富前辈的指点,才让我少走了些弯路。
有一些坑,主要是 Cookie 会话保持,以及密钥与时间参数的关系等等。
代码写的较丑,就不敢开源了。。。。
1
watzds 2018-03-11 23:45:31 +08:00 via Android
表格不错
|
2
zyqf OP @watzds 表格是用的 Texttable,IDE 中输出会导致表格错乱。后来调试半天,才去看了源代码,发现应该是全角和半角中文宽度计算的问题。
|
3
scnace 2018-03-12 00:10:34 +08:00 via Android 1
|
4
zyqf OP @scnace 我们教务处正在从您这篇文章的版本迁移到新的版本,据说是 Java 写的。还有 2017 年,今年 2018,年轻的时候???? 黑人问号.jpg
|
6
epkT6QJ3RSaz6AnJ 2018-03-12 00:19:57 +08:00
我记得正方教务有个提权漏洞,之后上传 ashx 后就有了 webshell,可以脱裤
|
7
epkT6QJ3RSaz6AnJ 2018-03-12 00:20:28 +08:00
表名都是拼音吓尿
|
8
XIVN1987 2018-03-12 00:53:30 +08:00
界面挺漂亮,,赞
|
9
chinvo 2018-03-12 01:06:47 +08:00
@zyqf #4 朋友之前在正方做项目实施经理,旧版的写的真是稀烂,在浪潮的云平台上,开 32 虚拟核机器,选课时有个后台进程会频繁挂起,最后解决方案是开 64 虚拟核的机器
(虽然很大原因是浪潮云平台之前不能绑定虚拟核到物理核 |
10
kingcos 2018-03-12 01:12:20 +08:00 via iPhone
……问一下,正方的课表难道不是跟青果一样,绘制的图片吗……
青果的还故意加了躁点防 OCR … |
11
azh7138m 2018-03-12 01:13:47 +08:00 via Android
@zyqf 刚迁到新版 Java 的话,那你要抓住机会,看下图片请求如果是学号做参数的话,是没有做校验的,建议爬取学校妹子多的院
|
12
azh7138m 2018-03-12 01:17:12 +08:00 via Android
顺便说下,如果学校的图书是老汇文的话,是可以直接 getshell,里面会有性别和学号,配合一下就能:D
|
13
oswuhan 2018-03-12 02:46:48 +08:00
半个校友……这个正方系统看起来好高端……
|
14
tsui 2018-03-12 04:05:58 +08:00
主贴就一个 terminal 截屏啊。。你们都看到的什么界面 table 的。。
|
15
steveway 2018-03-12 07:15:15 +08:00 via Android
我也做过相关的 不过我更偏向于抢课 post 的发送
项目中的 cookies 是怎么保存的? |
20
jydeng 2018-03-12 08:10:04 +08:00
@epkT6QJ3RSaz6AnJ 似乎是 12 年时候的事情
|
21
mcdona1d 2018-03-12 08:15:08 +08:00 via iPhone
我拿着个做的毕设,其中一个功能就是能从微信上查课表,查成绩,哈哈,我们系统只能校园网访问
|
22
zyqf OP @kingcos 新版教务系统是 XHR 请求数据的,返回来的结果都是 JSON 数据,没图片呀。。。
|
23
xyxc0673 2018-03-12 08:28:26 +08:00 via iPhone
表示也做了这个新版教务系统的爬虫,登录部分的加密用 python 实现了。不过正方无论旧版新版,人多都会挂掉。
|
24
steveway 2018-03-12 08:31:56 +08:00
@zyqf #18 哦哦 可能是需求不同 我希望将 cookie 储存下来多次使用 目前使用的方法是 pickle 将 cookie 对象直接存储下来
|
25
linpf 2018-03-12 08:40:01 +08:00
想想我在大学的时候用易语言去爬正方……
|
28
xuanyuanaosheng 2018-03-12 09:08:25 +08:00 via Android
方正下一个煎蛋
|
29
Allianzcortex 2018-03-12 09:13:08 +08:00
也写过类似的,不过我校教务系统选课是直接在 js 里把课表写进去的,根本没有 json 这种东西...
并且它的登陆逻辑是有问题的,填完一次验证码后就能多次尝试登陆,按照大多数人的习惯,如果还是六位数密码,那么最多跑 10**6 次就肯定能破出密码来 |
31
Allianzcortex 2018-03-12 09:21:39 +08:00
突然感觉年轻真好啊...自己都苍老了好多了
|
34
kingcos 2018-03-12 09:46:18 +08:00 via iPhone
@xyxc0673 是啊,哪跟傻 13 青果…竟然是绘图…还故意加躁点干扰……自己出的 App 也用不成…真的渣
|
35
echoZero 2018-03-12 09:48:46 +08:00 via iPhone
emmmm 我毕业设计里面有部分,学生课表的获取就模拟登录方正教务系统,我当时用过的解析 html 的的方式
|
36
CEBBCAT 2018-03-12 09:51:18 +08:00
相当 Nice 了,俺们学校用的也是这一版本的, 感谢则个 (好像" 则个 "用的不标准)
|
37
CEBBCAT 2018-03-12 09:56:10 +08:00
很期待楼主的开源
|
38
vtwoextb 2018-03-12 10:05:56 +08:00
如果遇到封 ip 可以使用代理 或者重启路由器 https://github.com/hizdm/dynamic_ip
|
40
zyqf OP @steveway requests 库中也有相关方法保存与载入 Cookies 的,不需要把整个对象持久化。您可以查阅下官方文档。
|
41
wangjie 2018-03-12 10:43:20 +08:00 via Android
最坑的应该是抢课吧,写过验证码识别和抢课的
|
42
dangyuluo 2018-03-12 11:02:03 +08:00
这个系统的 Windows 客户端登陆验证是把密码发到本地验证,而不是在服务器上,你敢信?
|
43
jdkl 2018-03-12 11:15:31 +08:00
同希望楼主开源,与楼主同教务系统,因对 JS 不懂所以不了解密码的加密方式一直模拟登录不了,只能依靠 cookies.
|
45
octobersnow 2018-03-12 12:53:29 +08:00 via iPhone
我们学校教育系统不能直接登录,需要通过信息门户进入教务系统
|
46
iyaozhen 2018-03-12 13:05:48 +08:00
哎,教务系统每一年都要被新人艹一遍。那是逝去的青春呀
|
47
axu0411 2018-03-12 13:23:15 +08:00 via Android
|
48
Osk 2018-03-12 13:25:45 +08:00 via Android
我们学校教务系统在公网 ip 上,明文传输密码,2333
|
49
whoami9894 2018-03-12 13:28:46 +08:00
同教务系统,楼主能发下处理 rsa 加密那段代码吗
|
51
Sanko 2018-03-12 14:13:09 +08:00 via Android
我们有验证码
|
52
Wysten 2018-03-12 14:14:21 +08:00
想起了我们学校正方教务系统里满满的后门。。基本都是上传 ashx 拿到的 webshell
|
54
zyqf OP @whoami9894 晚上就整理发出来
|
55
mamian 2018-03-12 16:13:17 +08:00
每年都有几个搞学校爬虫的
|
56
ChangHaoWei 2018-03-12 16:56:55 +08:00
把这个弄到 ios 上的日历上去吧。。这个算有点用了
|
57
wysnylc 2018-03-12 17:35:59 +08:00
xxl-crawle 面向对象爬虫框架
|
58
kokutou 2018-03-12 17:52:56 +08:00 via Android
当年是青果。。。
早期是 html,后来换图片了,但是更简单了。。。 |
59
labulaka 2018-03-12 20:45:55 +08:00
我们学校有验证码 哈哈哈哈哈哈
|
61
welkinzh 2018-03-12 22:23:04 +08:00
以前写过爬正方教务系统成绩的,后来发现登录进去首页右下角就有成绩了 23333
|
63
whoami9894 2018-03-13 19:41:14 +08:00 via Android
老哥代码整理好了吗
|
64
zyqf OP @whoami9894 看最新 APPEND 的内容呀
|
65
whoami9894 2018-03-13 21:57:52 +08:00 via Android
@zyqf 哦哦看到了谢谢老哥
|