历经艰难险阻,我搞定了自动修改路由器 WIFI 密码


历经艰难险阻,我搞定了自动修改路由器 WIFI 密码

文章插图
网管小贾 / sysadm.cc
请告诉我,你们有没有经常被蹭网的经历?
简单地说,就是路由器 WIFI 密码设置得太简单,很容易就被别人猜到了,然后就悲剧了 。
这种情况下通常好像我们能做的也就是重新修改密码 。
然而过了一段时间,悲剧又戏剧性地再次上演 。
 
老是这样可不行啊!
即使是设定一个超长超强的密码,一旦有人知道了,那么后果就是用不了几天,整层楼甚至整栋楼的人可能就都知道了 。
这时只有一个变相的办法,就是频繁修改密码 。
似乎有很多安全专家也鼓励我们要经常性地更新自己的密码 。
道理我懂,可我总不能一天到晚动不动就去修改密码啊!
要是手上有一二十个路由器也这么干?
难道要逼我躺平?
哎,先别慌,想办法让它自动更新密码不就得了!
于是我就开始动脑筋了,思考着有没有一个好一点的办法,能让路由器定时地自动地修改密码 。
 
最初我想到的是,能不能通过 Telnet 远程连接到路由器,然后使用 Cli 命令修改密码 。
这招看似可行,虽然我可以控制程序自动 Telnet 连接,可是,大多数情况下我们用的都是家用路由器啊,那玩意根本就不支持 Telnet 连接啊喂!
好像只有所谓企业版的路由器有支持 Cli 指令,但这并没有什么普遍性 。
呵呵,此路不通!
 
两千年后,我突发奇想、灵光乍现,有了一个奇葩想法 。
既然我们平时修改密码都是在路由器的管理页面上点来点去的,那我们能不能通过模拟鼠标点击来实现修改密码的功能呢?
呃...这个想法好像有点疯狂哈!
哥们靠谱不?
肚子里带着那么一点点可怜的 JS 知识,我决定搏一把看看 。
也没有其他办法了不是吗,上吧!
于是我找来了一台旧版式管理页面的 Tp-link 路由器(型号 TL-WR880N ),就它了!
 
实验准备工作:
  • 一台 windows 10 系统电脑
  • 火狐(或谷歌)浏览器
  • 一根网线连接到路由器的 LAN 口
  • 设定路由器与电脑为可互访的同一网段 IP 地址
 
组织代码,编写程序首先,我们要搞定页面自动登录 。
使用火狐打开路由器管理首页,按下 F12 开启调试控制台界面,点击 查看器 一项,再点下左边的那个小箭头,然后将鼠标定位到密码输入栏处 。
OK,顺利找到了密码框的 id ,为 pcPassword  。
相应的代码如下(假定登录密码是 123456 ),那么我们就可以自动填充密码了 。
document.getElementById('pcPassword').value = https://www.isolves.com/it/wl/sz/2022-01-14/'123456'; 
历经艰难险阻,我搞定了自动修改路由器 WIFI 密码

文章插图
 
 
密码自动填上了,我们还需要点击确定按钮,有了这个动作才能正常登录 。
用相同的方法,定位确定按钮的 id ,为 loginBtn  。
同样用代码来模拟点击 。
document.getElementById('loginBtn').click(); 
历经艰难险阻,我搞定了自动修改路由器 WIFI 密码

文章插图
 
 
可以先测试一下,切换到 控制台 标签页,然后输入前面那两行代码 。
然后回车,即可使用代码自动登录进入管理页面 。
历经艰难险阻,我搞定了自动修改路由器 WIFI 密码

文章插图
 
 
这个过程中没有真正用鼠标去点击,而只是用了代码,是不是很神奇?
这里需要说明一点,通常页面登录验证信息是加密的,所以想通过直接提交验证链接的方法来实现登录有些困难 。
好,登录进来之后,我们就要找一找在哪里可以修改密码,这才是我们的主要目的 。
 
需要事先说明的是,通常 Tp-link 旧款式管理页面使用的是框架结构,就是传说中的 frameset 标签元素,所以实际上它的左侧菜单和右侧内容是分别属于不同的框架区域的 。
类似于如下这个样子 。
<frameset><frameset><frame>顶部内容</frame></frameset><frameset><frameset><frame name="bottomLeftFrame">左侧菜单</frame></frameset><frameset><frame name="mainFrame">右侧内容</frame></frameset></frameset></frameset>


推荐阅读