用curl进行校园网模拟认证
这个学期学校网络登陆方式从拨号换到了dr.com的网页认证,通过chrome F12打开开发者工具,查看其登录其实就是发了一个GET请求,如下
请求url:http://10.160.63.9:801/eportal/
参数:
c
:值为Portal
,无需改动a
:值为login
,代表登录,登出则是logout
callback
:值为dr加上一个精确到毫秒的时间戳,如dr1599458671000
,该值代表登陆的时间,实测该值并不影响登录,估计与上网记录的统计有关login_method
:值为1
,无需改动user_account
:登陆账号,如1234123123@telecom
,一般账号为学号,后面的后缀则为选的运营商,电信是telecom
,其他运营商未测试user_password
,登陆密码,默认为身份证后六位wlan_user_ip
:通过DHCP获取到的内网ipwlan_user_mac
:值为000000000000
,无需改动wlan_ac_ip
:值为221.178.235.146
,无需改动wlan_ac_name
:值为JSSUZ-MC-CMNET-BRAS-KEDA_ME60X8
,无需改动jsVersion
:值为3.0
,无需改动_
:值为一个精确到毫秒的时间戳,猜测是打开网页的时间,实测该值并不影响登录,估计与上网记录的统计有关
关于内网ip可在路由器上获取,时间戳同样可以直接获取,如下
获取时间戳
1 | date +%s |
获取ip,我的WAN
接口名为eth3
1 | ifconfig eth3 | grep 'inet addr:' | awk '{print $2}' | cut -c 6- |
于是结合一下就可得到以下请求命令
1 | curl "http://10.160.63.9:801/eportal/?c=Portal&a=login&callback=dr`date +%s`666&login_method=1&user_account=21423423422%40telecom&user_password=2342342&wlan_user_ip=`ifconfig eth3 | grep 'inet addr:' | awk '{print $2}' | cut -c 6-`&wlan_user_mac=000000000000&wlan_ac_ip=221.178.235.146&wlan_ac_name=JSSUZ-MC-CMNET-BRAS-KEDA_ME60X8&jsVersion=3.0&_=`date +%s`000" --compressed --insecure |
将其添加到路由器上运行,由于我的固件是padavan,所以可以通过以下方式添加,参数设置-->脚本-->在 WAN 上行/下行启动后执行
,填入
1 | sleep 5 && curl "http://10.160.63.9:801/eportal/?c=Portal&a=login&callback=dr`date +%s`666&login_method=1&user_account=21423423422%40telecom&user_password=2342342&wlan_user_ip=`ifconfig eth3 | grep 'inet addr:' | awk '{print $2}' | cut -c 6-`&wlan_user_mac=000000000000&wlan_ac_ip=221.178.235.146&wlan_ac_name=JSSUZ-MC-CMNET-BRAS-KEDA_ME60X8&jsVersion=3.0&_=`date +%s`000" --compressed --insecure |
为了让wan接口完全准备好,以防认证失败,在前面使用sleep
命令等待了5秒,经过两天的测试,早上宿舍通电路由器启动的时候就可以实现自动认证
用curl进行校园网模拟认证