admin管理员组文章数量:1627760
本帖最后由 材鸟 于 2017-3-3 22:49 编辑
前言:某种需要,要换一百几十个路由器。买来的路由器还要挨个去设置。一直操作几个步骤,十分蛋疼的一件事,由此想到做一个工具,点一下自动设置完毕。
正文:
众所周知,路由器的设置过程一般是 连接 192.168.1.1 然后按提示步骤操作设置即可使用,其中每一步设置都会向 192.168.1.1 提交数据使设置生效,那么显而易见,要制作的工具原理就是模拟每一步的封包,提交。最终完成设置~
先看一下我手中的这款路由器的设置页面吧 ,型号是MERCURY(水星) MW305R
1.png (80.55 KB, 下载次数: 7)
2017-3-3 18:06 上传
设置过程就是-创建登录密码-选择上网方式-无线WIFI设置-。。。。
创建登录密码:
打开HTTP WATCH 抓取一下封包(最好先清除下缓存),这里我创建密码设置 123456
2.png (126.33 KB, 下载次数: 9)
2017-3-3 18:15 上传
3.png (156.81 KB, 下载次数: 14)
2017-3-3 18:19 上传
由此得出创建登录密码的设置
提交地址是 http://192.168.1.1/?code=10&asyn=0&auth=WaQ7xbhc9TefbwK
提交了数据 0KcgeXhc9TefbwK //加密后的123456
返回 00000 //成功标识
这就犯难了,提交的不是明文密码,而是经过加密后的密码。怎么去找个加密过程呢?
别担心,IE自带了开发人员工具,按下F12即可拥有它
4.png (181.45 KB, 下载次数: 10)
2017-3-3 18:26 上传
经过研究发现加密在 http://192.168.1.1/lib 静态库 的脚本Quary.js里
5.png (84.47 KB, 下载次数: 9)
2017-3-3 18:26 上传
6.png (95.85 KB, 下载次数: 11)
2017-3-3 18:35 上传
function jiami (pass)
{return this.securityEncode(pass,"RDpbLfCPsJZ7fiv","yLwVl0zKqws7LgKPRQ84Mdt708T1qQ3Ha7xv3H7NyU84p21BriUWBU43odz3iP4rBL3cD02KZciXTysVXiV8ngg6vL48rPJyAUw0HurW20xqxv9aYb4M9wK1Ae0wlro510qXeU07kV57fQMc8L6aLgMLwygtc0F10a0Dg70TOoouyFhdysuRMO51yY5ZlOZZLEal1h0t9YQW0Ko7oBwmCAHoic4HYbUyVeU3sfQ1xtXcPcf1aT303wAQhv66qzW")};
this.securityEncode=function(a,c,b)
{var d="",e,f,g,h,k=187,m=187;f=a.length;g=c.length;h=b.length;e=f>g?f:g;for(var l=0;l=f?m=c.charCodeAt(l):l>=g?k=a.charCodeAt(l):(k=a.charCodeAt(l),m=c.charCodeAt(l)),d+=b.charAt((k^m)%h);return d};this.simulateMouseC=function(a){simulateMouseC=!0==isIE&&!1==isIENormal?function(a){var b=document.createEventObject();b.sceenX=100;b.sceenY=0;b.clientX=0;b.clientY=0;b.ctrlKey=!1;b.altKey=!1;b.shiftKey=!1;b.button=0;a.fireEvent("onclick",b)}:function(){};simulateMouseC(a)};this.emptyNodes=function(a){for(;a&&a.firstChild;)a.removeChild(a.firstChild)}
OK,找到加密算法。这里我用的是易语言写的代码,用了某论坛的模块写的POST
7.png (19.23 KB, 下载次数: 10)
2017-3-3 18:42 上传
创建登录密码步骤完成,接下来是POST登录(需要登录后才能继续进行设置),然后POST上网方式,POST无线设置,POST LAN口IP地址。
登录:
8.png (87.47 KB, 下载次数: 10)
2017-3-3 18:49 上传
9.png (160.3 KB, 下载次数: 8)
2017-3-3 18:49 上传
地址 http://192.168.1.1/?code=2&asyn=1
提交数据 0KcgeXhc9TefbwK
返回数据
00007
00004
00000
5JiHmd3E>k7voE(uN>s42D7D1!4uD^uOnzyIpE4v!E.bF5A0BT19}nF!{0nALaY])JKG{5KCJrnjXqoVvE8vtWP}aekvrDyE3V(j3k{fn)xuD(4(Y35!xm{cf+rhaXCp7HWv3dQ^uu9!^9Rkc[oHH1F0D25Vn[T{B6u({Yhr0V>p
00000
WTF?返回的什么鬼?后面就知道,登录这就成功了~接下来POST上网方式,POST无线设置,POST LAN口IP地址。
POST上网方式:
登录后跳过向导,进管理页面再来抓。这里我抓的是自动获取IP设置
10.png (88.76 KB, 下载次数: 8)
2017-3-3 18:58 上传
11.png (154.94 KB, 下载次数: 11)
2017-3-3 18:58 上传
提交地址
http://192.168.1.1/?code=1&asyn=0&id=07Gz3p5V.b6aBHKO
提交数据
id 22
linkMode 0
linkType 0
返回
00000
好像很简单?NO。调试发现提交地址 http://192.168.1.1/?code=1&asyn=0&id= ??会变动的?? WTF?
还是这个JS 搜索&id=
12.png (79.38 KB, 下载次数: 11)
2017-3-3 19:08 上传
发现提交地址是这么来的。
this.session=this.securityEncode(authInfo[3],b,authInfo[4]);c+="&id="+this.encodePara(this.session);
ID是this.encodePara(this.session) // 编码(this.session) 得来的
this.session=this.securityEncode(authInfo[3],b,authInfo[4]) //很熟悉吧,刚才创建登录密码的时候用的算法,但是参数呢? authInfo[3],b,authInfo[4] 三个参数是什么
往前翻可以看到 authInfo 的赋值
a=a.split("\r\n");EUNAUTH==this.result.errorno&&(authInfo[1]=a[0],authInfo[2]=a[1],authInfo[3]=a[2],authInfo[4]=a[3],$.group=a[4],$.pagePRHandle());
13.png (65.59 KB, 下载次数: 8)
2017-3-3 20:12 上传
启动调试后,登录一下随便操作一下,让他POST,后断下
14.png (63.27 KB, 下载次数: 9)
2017-3-3 20:17 上传
变量A的值是
00004
00000
k~xDW,8I,9gs)U4}
!cqU({BF1DS>,HLB|VV>tFfVm866kE}0W67wK+Rx7{SJ
00000
15.png (76.88 KB, 下载次数: 8)
2017-3-3 20:17 上传
F10逐过程, a=a.split("\r\n") 执行完这个 //其实就是分割文本,用作分割的文本是换行符
authInfo[3]=a[2]//"k~xDW,8I,9gs)U4}"
authInfo[4]=a[3]//"!cqU({BF1DS>,HLB|VV>tFfVm866kE}0W67wK+Rx7{SJ
显而易见,就是我们登录后返回的这个数据,拿去分割,然后再拿去计算。
this.session=this.securityEncode(authInfo[3],b,authInfo[4]) 现在已知2个参数了, 中间的B是什么? 在这里下断看一下不就知道!
16.png (68.96 KB, 下载次数: 8)
2017-3-3 20:26 上传
加密过后的密码。现在知道了。。
17.png (21.62 KB, 下载次数: 9)
2017-3-3 20:27 上传
剩下POST无线设置,POST LAN口IP地址。无线设置的话,POST数据会要一个UsrPin,点击设置的时候有返回过来,获取即可。LAN口IP设置的话,没啥特别的~ 写的好乱~ 没心情写了,
附件源码既是成品
本篇目的是写过程,授人以渔也~。说不能通用的,我很无语,只能告诉你,多读书总没错
易语言源码和加密的JS.rar
(149.67 KB, 下载次数: 421)
2017-3-3 20:34 上传
点击文件名下载附件
下载积分: 吾爱币 -1 CB
版权声明:本文标题:易语言路由器服务器,无线路由器一键设置工具,制作过程,成品。 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729002354a1182691.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论