一、引言
先吐槽一下:之前是用的学校的电信宽带,但是苦于隔几个小时不用就会掉线,隔几个小时就要手动登陆一次,下楼丢个垃圾回来就得重新打开软件登录确实很容易血压高,当时的天翼校园自动登陆的脚本无人维护,已经处于不可用的状态了,于是我转而换成了更容易的联通宽带。
以我这里的湖南某校园宽带为例,使用的是Drcom的网页认证,网线只要插到路由上,路由器设置成静态ip,只要在任何设备上完成一次登录认证,所有连接路由器的设备都是可以使用的,不确定有没有设备上限或者多长时间会掉线,有兴趣的可以自己试试。
关于Drcom,很早就有大佬编译出各版本openWRT的认证脚本,并给出各版本的自动登录教程了,有兴趣的可以去看看,本篇文章不再做赘述[2018-10-11]【DrCOM/dr.com校园网路由器】使用教程 c语言单文件 dogcom 不需python-斐讯无线路由器以及其它斐迅网络设备-恩山无线论坛
但是为什么不继续用这个呢?问题就在于这个认证脚本最后更新是2018年,当时的openWRT内核版本是3.X,这个脚本已经不适用于现在的最新的5.X内核了,在现在最新内核下使用会报错-ash: /usr/dogcom: not found
。解决办法就是换用远古的3.X内核的固件,后果就是体验不到新固件。或者使用PADAVAN固件,这个我试过了,是没问题的,后果就是UI不好看,但是第三方编译的固件质量没有openWRT高,所以最后还是用的openWRT。
不扯了,说一下:本教程的目的就是使用路由器的openWRT系统来实现Drcom的自动登录并且绕过多设备限制,注意仅适用于网页认证的。如果是客户端认证的话,就用上面那个2018年的教程吧。
二、安装openWRT系统
相信看到这里的基本上都已经装好这个系统了,由于不同路由器的刷机方式不太一样,openWRT固件也是繁多,本人也没有过多的精力去总结,所以目前只写了一篇本人在用的京东云亚瑟的刷机教程,其他路由器的刷机教程可以去恩山无线论坛自行寻找,只要不是买到很垃圾的路由器或者很冷门的,基本上都有教程。
因为刷机的过程中会使用到WinSCP和PUTTY,所以下面也不会介绍这两个软件如何连接路由器后台了,直接说的需要干什么。
三、路由器安装curl插件
使用PUTTY登录路由器后台,输入如下命令(注意此时路由器需要是有网状态)
opkg update
opkg install curl
显示如下界面就是安装成功了
四、抓包
1.首先将宽带与电脑连接,进入到认证界面,但是先不要点击登录,注意最好使用Edge浏览器
2.按F12,浏览器右边弹出这个界面,选择网络选项卡
3.点击登录,右边这里会出现一堆请求
4.每一个都仔细翻一下,标头包含紫色圈住的信息就可以,里面写着你账号密码的那个文件就是
5.然后右键这个文件-复制-复制为cURL(bash)
6.然后把他随便粘贴到一个txt里,大概内容是这样的,关键信息我替换掉了,复制出来的是什么就是什么,不用修改任何东西
curl 'http://登陆界面的IP/0.htm' \
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \
-H 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6,el;q=0.5' \
-H 'Cache-Control: max-age=0' \
-H 'Connection: keep-alive' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-b 'drcom_login=账号%7C密码' \
-H 'Origin: http://登陆界面的IP' \
-H 'Referer: http://登陆界面的IP/0.htm' \
-H 'Upgrade-Insecure-Requests: 1' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36 Edg/133.0.0.0' \
--data-raw 'DDDDD=账号%40aaa&upass=a82d0bc0a9695b22269f9c8092db3c40123456782&R1=0&R2=1¶=00&0MKKey=密码&v6ip=' \
--insecure
然后新建一个txt,先复制我的代码,然后把上面复制的哪些东西粘贴到这个双引号里,再把这个txt重命名为keep.sh
#!/bin/sh
curl_command="上面复制的那些东西"
# 无限循环,每10秒ping一次百度
while true; do
# ping百度,检查网络是否通畅
ping -c 1 www.baidu.com > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "网络通畅"
else
echo "网络不通,执行curl命令"
# 执行curl命令
eval $curl_command
fi
# 等待10秒后再次检测
sleep 10
done
7.然后使用WinSCP将这个文件上传到/usr/目录,并给予0777权限
7.然后需要将这个sh文件转化为linux编码格式
使用PUTTY连接路由器后台,输入
sed -i 's/\r//' /usr/keep.sh
五、登录
测试能否登录,注销其他设备的校园宽带认证,把宽带插入路由器,在PUTTY中输入
/usr/keep.sh
出现'网络不通,执行curl命令'
在一堆乱七八糟的东西出来过后,一直出现'网络通畅'就说明成功了
六、设置脚本开机自启
登录路由器后台,在系统-启动项-本地启动脚本栏目
在exit 0上面添加一行
/usr/keep.sh
点击提交,重启路由器
重启完,在状态-系统日志栏目,看到有网络通畅这条输出,大功告成
七、写在最后
本博客的写作初衷仅仅是为了分享如何实现Drcom网页认证的自动登录。所使用到的也仅仅是使用curl发送自己的POST请求,很简单的一个操作。
本方案只保证可以实现登录,并没有做防检测,因为我学校没有检测,如需防检测可自行使用UA2F插件Zxilly/UA2F: Change User-Agent to F-string on OpenWRT router to prevent being detected.使用教程请自行搜索,网上是有过检测方案的。没有做好完备的防检测或者验证过无检测的情况下贸然使用本方案所造成的后果由使用者自行承担。
免责声明
一切及使用本方案时均被视为已经仔细阅读并完全同意以下条款:
本方案仅供个人学习与交流使用,严禁用于不良用途。
本方案完全透明,并不涉及任何隐藏代码。
使用本方案所存在的风险将完全由其本人承担,作者不承担任何责任。
因不当使用本方案而导致的任何意外、疏忽、合约毁坏、诽谤、版权或其他知识产权侵犯及其所造成的任何损失,作者概不负责,亦不承担任何法律责任。
本声明未涉及的问题请参见国家有关法律法规,当本声明与国家有关法律法规冲突时,以国家法律法规为准。
本方案相关声明版权及其修改权、更新权和最终解释权均属作者所有。
评论区