前言:
三大运营商都有自己的定制版路由器,一般会在自家营销活动中作为赠品送给用户
正巧我家里就有两台电信定制版的华为路由器,都是这两年双十一在某宝上买宽带时送的
两台路由器型号分别是TC7001和TC7102,分别对应华为官方公版路由器型号是AX2和AX3
这两台在我家里都是作为从路由使用的,增强下全屋的wifi信号仅此而已
1. 路由器刷成砖了
这两路由器当时到手的时候,我直接用手机把它们设置为家里的从路由了,所以管理后台我都还没仔细看过 <-- 请先注意这句话
晚上闲着无聊打开路由器的后台看了一下,发现定制版的路由器阉割掉了很多功能,只有最基础的wifi设置和一些基础信息设置的功能,完全没有可玩性
我就在网上找了找,看有没有什么第三方固件可以刷一刷扩展下功能,发现这两台华为路由器虽然不能刷第三方的固件,但是可以刷成公版固件,至少能变成一台功能齐全的路由器
于是找到了TC7102的公版AX3的固件,虽然教程写着不明不白,不管三七二十一了,固件版本对的上我就直接下载过来开始刷固件
固件刷完后发现,路由器的wifi信号没了,而且后台管理界面的默认密码也变了,不是机身背后的初始密码,这不等于啥也干不了,跟一台砖头没差!!!😓😓
随后上网找了找,发现很多人都有这个问题,刚好这一款路由器的电信定制版刷成公版路由是有风险和特别注意事项的,一开始看的教程里都没提到
找了好久的解决办法,奈何定制版算是冷门款,网上信息太少了,但可以判断出来这路由基本是废了,得拆机烧固件,要找售后解决了
2. 尝试找到隐藏功能入口
我就想着,大家都喜欢刷公版,不就是因为功能太少了,而定制版会不会并没有删除功能,只是把功能入口隐藏掉了???
随后我就打开另一台路由器的后台,都一个品牌嘛,后台跟刚才那台是一模一样的,可以看到有些菜单是灰掉的
1. 先从html源码上入手,按F12打开浏览器调试工具,找到灰掉的按钮元素,把元素上的disabled属性去掉,css也尝试修改一下,发现点击了没反应,说明这事没这么简单
2. 接着发现他们的后台页面是用vue写的,并且点击那几个可用的菜单时,url上的路由跟dom上的id是一一对应的,那么可以确定点击事件就是用vue路由控制的,我们就可以从js源码入手,通过id去搜索对应的路由控制代码
3. 通过搜索其中一个被禁用的菜单id:internet,我在网页加载的资源中找到了一个名为router.js的文件,里面配置了很多页面的路由,以及每个路由需要的依赖引用和属性,而且通过路由命名都可以猜到是什么功能,并且路由数量是远远超过网页上可见的页面入口数量,我就随便找一个页面上没有的功能,在url上直接修改,回车后发现没反应,有的甚至会跳回首页,那这里一定是有什么逻辑在过滤这些路由
4. 很快我再通过一番搜索,在一个名为main.js里发现了一段注释写着白名单控制的方法,代码里清清楚楚的写着如何判断白名单,虽然不能完全看懂某些组合条件是什么意思,但是可以大概判断出来代码是通过一个叫 isRepeater 、meta.repeater 的属性,以及 isBridge、meta.bridage 这个'或'条件去判断的
5. meta.repeater 和 meta.bridge 这两个属性刚才在router.js里,我已经看到过几次,分外的眼熟,回到router.js中,可以发现很多不可见的页面路由恰巧都设置了这两个属性,真相大白了!
3. 利用Fiddler去替换掉JS的响应内容
1. 我们先把router.js这个文件下载到本机,用编辑器打开这个js,把路由包含 repeater: true 和 bridge: true 的meta属性都删了,注意json格式别搞乱了,然后保存
2. 打开Fiddler开始抓包,刷新一下路由器的后台界面,在Fiddler中找到router.js,并把这个响应拖到右侧的AutoResponder中,接着选中这个响应,并指向到刚才我们本机上修改过的router.js,最后开启 Enable rules
3. 我们再刷新下网页,并手动修改url上的路由,随便挑一个隐藏路由即可,发现隐藏页面成功展示出来了,并且里面的各种设置都是能正常工作的,大功告成!!!
4. 有少量路由打开还是没反应的,结合路由的配置和网页加载资源可以判断出,某些路由依赖的js并不存在,说明开发者还是确确实实删了一点点的功能
5. 当然你也可以修改main.js中那段白名单的控制逻辑,用一样的套路实现效果
反转来了...
当我打开路由页面/internet,也就上图中顶部第二个灰色菜单,页面上显示 上网方式:Bridge(AP),再想到代码中关于白名单的条件有2个变量叫 isBridge 和 meta.bridge
我其实已经有点猜到是什么情况:Bridge模式下,开发者故意隐藏掉这些菜单,因为桥接模式的网关控制权已经全权交给主路由了,所以从路由没必须再显示这些功能
前面我也说了,这两个路由器一到手,我直接用手机进入路由器初始化流程,把他们设为从路由器,没机会看过它们的后台是长什么样的
而我这一次进后台,它们已经处于桥接模式了,导致我一直以为是因为定制版的原因这些功能才被阉割掉的
随后我就重置了路由器,设为正常的路由模式,果然所有菜单都正常显示出来了,搞了半天是一个乌龙事件....
结:
虽然这是一个乌龙教程,但是万一其他品牌的运营商定制版固件确实有隐藏了功能,并且是使用前后端分离的形式去做,也可以通过这样的方式去摸索,这篇教程能起到一点点的参考意义吧
路由器刷公版固件和第三方固件有风险,网上教程一定要先看完整,甚至可以多找几份教程对比,再刷一些用户的评论看看反馈再进行操作,像我这样操作不当就直接刷成砖,路由器废掉只能走售后,花费的时间成本更大
以上教程仅针对华为路由器的管理后台,其他品牌的后台大概率不适用,请自行研究
行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!