易语言路由器服务器,无线路由器一键设置工具,制作过程,成品。

本帖最后由 材鸟 于 2017-3-3 22:49 编辑

前言:某种需要,要换一百几十个路由器。买来的路由器还要挨个去设置。一直操作几个步骤,十分蛋疼的一件事,由此想到做一个工具,点一下自动设置完毕。

正文:

众所周知,路由器的设置过程一般是 连接 192.168.1.1 然后按提示步骤操作设置即可使用,其中每一步设置都会向 192.168.1.1 提交数据使设置生效,那么显而易见,要制作的工具原理就是模拟每一步的封包,提交。最终完成设置~

先看一下我手中的这款路由器的设置页面吧 ,型号是MERCURY(水星) MW305R

55fd2b2273b5a8b4531f72773c469d6e.gif

1.png (80.55 KB, 下载次数: 7)

2017-3-3 18:06 上传

设置过程就是-创建登录密码-选择上网方式-无线WIFI设置-。。。。

创建登录密码:

打开HTTP WATCH 抓取一下封包(最好先清除下缓存),这里我创建密码设置 123456

55fd2b2273b5a8b4531f72773c469d6e.gif

2.png (126.33 KB, 下载次数: 9)

2017-3-3 18:15 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

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即可拥有它

55fd2b2273b5a8b4531f72773c469d6e.gif

4.png (181.45 KB, 下载次数: 10)

2017-3-3 18:26 上传

经过研究发现加密在 http://192.168.1.1/lib 静态库  的脚本Quary.js里

55fd2b2273b5a8b4531f72773c469d6e.gif

5.png (84.47 KB, 下载次数: 9)

2017-3-3 18:26 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

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

55fd2b2273b5a8b4531f72773c469d6e.gif

7.png (19.23 KB, 下载次数: 10)

2017-3-3 18:42 上传

创建登录密码步骤完成,接下来是POST登录(需要登录后才能继续进行设置),然后POST上网方式,POST无线设置,POST LAN口IP地址。

登录:

55fd2b2273b5a8b4531f72773c469d6e.gif

8.png (87.47 KB, 下载次数: 10)

2017-3-3 18:49 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

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设置

55fd2b2273b5a8b4531f72773c469d6e.gif

10.png (88.76 KB, 下载次数: 8)

2017-3-3 18:58 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

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=

55fd2b2273b5a8b4531f72773c469d6e.gif

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());

55fd2b2273b5a8b4531f72773c469d6e.gif

13.png (65.59 KB, 下载次数: 8)

2017-3-3 20:12 上传

启动调试后,登录一下随便操作一下,让他POST,后断下

55fd2b2273b5a8b4531f72773c469d6e.gif

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

55fd2b2273b5a8b4531f72773c469d6e.gif

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是什么? 在这里下断看一下不就知道!

55fd2b2273b5a8b4531f72773c469d6e.gif

16.png (68.96 KB, 下载次数: 8)

2017-3-3 20:26 上传

加密过后的密码。现在知道了。。

55fd2b2273b5a8b4531f72773c469d6e.gif

17.png (21.62 KB, 下载次数: 9)

2017-3-3 20:27 上传

剩下POST无线设置,POST LAN口IP地址。无线设置的话,POST数据会要一个UsrPin,点击设置的时候有返回过来,获取即可。LAN口IP设置的话,没啥特别的~ 写的好乱~ 没心情写了,

附件源码既是成品

本篇目的是写过程,授人以渔也~。说不能通用的,我很无语,只能告诉你,多读书总没错

c557529e2ea4bb8d5cb558b7b5575102.gif

易语言源码和加密的JS.rar

(149.67 KB, 下载次数: 421)

2017-3-3 20:34 上传

点击文件名下载附件

下载积分: 吾爱币 -1 CB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值