准备工具:
Fiddler Web Debugger
一个软路由(树莓派也行)
因为学校的校园网每天会自动断开,于是我打算实现每天自动登录校园网
抓取登录数据包
首先通过FD抓包获取登录请求
因为认证服务器是内网,基本上请求都是http和post请求
因此数据包中会带有明文数据
我们学校默认的登录密码是a123456
所以我们搜索带有"a123456"明文的数据就好
突出显示为黄色的说明就是我们要找的包
查看这个数据包可以发现是post请求
最上面的参数是请求地址:
http://172.16.3.1:801/eportal/?c=ACSetting&a=Login&protocol=http:&hostname=172.16.3.1&iTermType=1&wlanuserip=20.0.63.60&wlanacip=null&wlanacname=null&mac=00-00-00-00-00-00&ip=20.0.63.60&enAdvert=0&queryACIP=0&jsVersion=2.4.3&loginMethod=1
最下面的参数为你的账号密码等参数,你需要带上这些参数才能成功登录
DDDDD=%2C0%2C18888888888%40telecom&upass=a12345678&R1=0&R2=0&R3=0&R6=0¶=00&0MKKey=123456&buttonClicked=&redirect_url=&err_flag=&username=&password=&user=&cmd=&Login=&v6ip=
所以我们把这个post请求拼接成URL链接
http://172.16.3.1:801/eportal/?c=ACSetting&a=Login&protocol=http:&hostname=172.16.3.1&iTermType=1&wlanuserip=20.0.63.60&wlanacip=null&wlanacname=null&mac=00-00-00-00-00-00&ip=20.0.63.60&enAdvert=0&queryACIP=0&jsVersion=2.4.3&loginMethod=1&DDDDD=%2C0%2C18888888888%40telecom&upass=a12345678&R1=0&R2=0&R3=0&R6=0¶=00&0MKKey=123456&buttonClicked=&redirect_url=&err_flag=&username=&password=&user=&cmd=&Login=&v6ip=
我们打开这个链接可以发现提示你已成功登录
由此可以验证我们这个链接是可用的
抓取注销数据包
现在我们再获取注销链接(因为我们需要在凌晨三点这个时间,不影响任何人的情况下完成网络注销与登录)
抓取过程与上面同理
开启抓包软件,在你注销时抓取数据包
搜索明文"logout"
具体过程我就不多做叙述
于是我们得到了它
http://172.16.3.1:801/eportal/?c=ACSetting&a=Logout&wlanuserip=null&wlanacip=null&wlanacname=null&port=&hostname=172.16.3.1&iTermType=1&session=null&queryACIP=0&mac=null&jsVersion=2.4.3
通过对它的测试,发现确实是可以注销登录
我们可以开始写脚本了
完成自动注销登录功能
因为我们的校园网会检测是否为路由器或者电脑,如果是路由器的话会变得卡顿,但如果是电脑的话就没事,于是我把软路由的系统刷为Windows Server 2012
所以我这里只能写bat脚本
具体思路为
脚本先自动访问注销链接,再访问登录链接,完成一次网络重启
定时功能通过Widnows的任务计划程序实现
因为不知名的原因,导致我登录链接只能通过脚本从txt文本获取并访问,否则就会提示AC认证失败
脚本内容为
@echo off
start chrome.exe "http://172.16.3.1:801/eportal/?c=ACSetting&a=Logout&wlanuserip=null&wlanacip=null&wlanacname=null&port=&hostname=172.16.3.1&iTermType=1&session=null&queryACIP=0&mac=null&jsVersion=2.4.3"
choice /t 5 /d y /n >nul
taskkill /f /im chrome.exe
echo "%date% %time% 完成注销" >> log.txt
for /f "delims=" %%i in (login.txt) do (
echo %%i
start "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" %%i
)
choice /t 5 /d y /n >nul
taskkill /f /im chrome.exe
echo "%date% %time% 完成登陆" >> log.txt
echo "%data% %time% 执行完成Start" >> log.txt
在同目录新建一个txt文本
txt文本名字为login.txt
内容为:
http://172.16.3.1:801/eportal/?c=ACSetting&a=Login&protocol=http:&hostname=172.16.3.1&iTermType=1&wlanuserip=20.0.63.60&wlanacip=null&wlanacname=null&mac=00-00-00-00-00-00&ip=20.0.63.60&enAdvert=0&queryACIP=0&jsVersion=2.4.3&loginMethod=1&DDDDD=%2C0%2C18888888888%40telecom&upass=a12345678&R1=0&R2=0&R3=0&R6=0¶=00&0MKKey=123456&buttonClicked=&redirect_url=&err_flag=&username=&password=&user=&cmd=&Login=&v6ip=
最后一步
打开Windows任务计划程序,创建任务
创建两个触发器:
一个定时启动脚本
一个开机启动脚本(防止意外情况)
在操作这里新建
最后点击确认就好了
点击任务,再点击运行进行测试
访问脚本目录下的日志可以发现已成功执行
至此已完成所有功能