苏大校园网の小妙招
苏大校园网直接连接
苏大校园网の小妙招
一、前言
众所周知,苏大的SUDA_WIFI需要进行认证。虽然可以开启校园漫游,但是似乎在大部分时间中,当我们断开wifi然后再重新连接的时候,都需要重新认证。
虽然我没有仔细求证过其中的判断标准,不过现在的设备连接wifi一般都会有一个随机MAC地址的选项。
MAC地址,全称为“媒体访问控制地址”(Media Access Control Address),是一个用于确保网络设备唯一性的地址。它是一个通常由六组两位十六进制数字组成的地址,例如:08:00:27:4A:2D:1F。
每个网络接口控制器(NIC)都有一个唯一的MAC地址,这个地址在生产时被烧录到硬件中,通常是不可更改的。无论是有线还是无线的网络设备,如以太网卡、Wi-Fi设备等,都有一个MAC地址。
MAC地址在数据链路层(OSI模型的第二层)被用于标识网络上的设备。当数据包在局域网(LAN)内传输时,它是基于MAC地址进行路由的,而不是IP地址。
MAC地址一般标志着网络中的唯一硬件,wifi认证过程中很有可能就是通过相同的MAC地址来判断登陆的设备是否是同一个,既然使用了“随机MAC地址”,自然也就无法做到每次登陆免认证。
下来我将介绍一个小技巧来实现对于校园网的自动认证。
二、探索过程
为了探究登录过程,我将整个登陆的过程抓包。
首先我们知晓苏大校园网登录的网址是http://10.9.1.3/
我们打开网址,选好自己的运营商,并输入用户名和密码,按下F12打开开发人员工具
注意开启 保留日志
接着输入自己的用户名密码,然后登录。
截取这个数据包:
这样我们就得到了这样的一个登录url:
http://10.9.1.3:801/eportal/?c=Portal&a=login&callback=dr1003&login_method=1&user_account=%2C0%2C USERID %40zgyd&user_password= PASSWORD &wlan_user_ip= IP &wlan_user_ipv6=&wlan_user_mac=000000000000&wlan_ac_ip=&wlan_ac_name=&jsVersion=3.3.3&v=6025
这个url中存在以下参数
a
:代表登录方法,login
即为登录,logout
即为注销login_method
:应该是一种登录方法,1
可能代表着网页登陆callback
:笔者也不知道,似乎再其他的POST请求中也存在dr1002
、dr1003
等,不过登录的时候是dr1003
user_account
:顾名思义,登录者的账号,经过url解密应该是类似,0,12345678@zgyd
。经过笔者验证,校园网应该没有@
之后的内容,即,0,12345678
;中国移动为@zgyd
;中国联通为@cucc
;中国电信为@ctc
user_password
:即为你登录的密码wlan_user_ip
:你连接上wifi时给你DHCP分配的IP地址wlan_user_ipv6
:分配的IPv6地址,苏大似乎没有,可以空着wlan_user_mac
:连接设备的mac地址,默认为000000000000
wlan_ac_ip
:ac节点的IP,可以空着wlan_ac_name
:ac节点的名称,可以空着jsVersion
:浏览器js版本,默认3.3.3
v
:这个参数笔者也不清楚,可能与时间戳有关,不过POST请求时可以不输入这个参数
三、实现自动连接
我们可以得到最终登录时的url:
http://10.9.1.3:801/eportal/?c=Portal&a=login&callback=dr1003&login_method=1&user_account=%2C0%2C USERID %40zgyd&user_password= PASSWORD &wlan_user_ip= IP &wlan_user_ipv6=&wlan_user_mac=000000000000&wlan_ac_ip=&wlan_ac_name=&jsVersion=3.3.3
例如:
用户名:12345678
密码:123456
运营商:中国移动
IP地址:10.120.100.100
可以直接在浏览器里输入url:
http://10.9.1.3:801/eportal/?c=Portal&a=login&callback=dr1003&login_method=1&user_account=%2C0%2C12345678%40zgyd&user_password=123456&wlan_user_ip=10.120.100.100&wlan_user_ipv6=&wlan_user_mac=000000000000&wlan_ac_ip=&wlan_ac_name=&jsVersion=3.3.3
即可实现登录
笔者也写一个Python程序来实现自动登录:
1 | import socket |
四、总结
笔者写到这里才发现,原来好像替苏大写了个本地登录的客户端(?)不过这个小程序有个好处,在一些无法进行图形登录的系统,例如OpenWRT,不带GUI界面的Linux上,也能实现无网页登录。当然对于同学们来说好像这个登录也没有那么方便((),毕竟IOS和安卓运行Python程序还有点麻烦(笑),但这也算是来到苏大整的第一个活罢。