用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获取到的内网ip
  • wlan_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进行校园网模拟认证

https://jktu.cc/用curl进行校园网模拟认证/

作者

udp_bbr

发布于

2020-09-07

更新于

2020-09-07

许可协议