免责声明: 本文章并非专业教程,只是日常捣鼓的技术杂记,大佬勿喷,中间的一些操作可能不符合某些规定。本人概不承担相应的后果和法律责任。

另外,请不要在一些敏感网络中(如图书馆的上网认证系统)尝试下面操作,不然容易出不必要的问题。。。。

em 不废话了,下面回归正题

测试的认证系统

想要突破他的束缚,先要观察、了解它的运行机制(大概)

我在在 亿 一丁点观察后发现: 打开浏览器,输入任意的的域名/url后,加载出来的都是这个神奇的登陆界面,Ping不同的域名都是指向同一个内网IP,查询了一下本机dns发现dns为网关分配的dns服务器。 所以大致推测:计算机发送请求查询dns记录>内网网关dns检测计算机的是否已登陆>如果已登录,则返回正确的服务器IP 否则,返回认证系统服务器的IP地址

于是,尝试手动指定第三方dns服务器

如果这个认证系统只是简单地控制dns解析记录,那么手动指定一下第三方或者公共dns即可绕过验证。 公共dns大全

名称 公共DNS服务器IP大全 114 DNS 114.114.114.114 114.114.115.115 阿里 AliDNS 223.5.5.5 223.6.6.6 百度 BaiduDNS 180.76.76.76 DNSPod DNS+ 119.29.29.29 182.254.116.116 CNNIC SDNS 1.2.4.8 210.2.4.8 oneDNS 117.50.11.11 52.80.66.66 DNS 派 电信/移动/铁通 101.226.4.6 218.30.118.6 DNS 派 联通 123.125.81.6 140.207.198.6 Cloudflare DNS 1.1.1.1 1.0.0.1 Google DNS 8.8.8.8 8.8.4.4 IBM Quad9 9.9.9.9 DNS.SB 185.222.222.222 185.184.222.222 OpenDNS 208.67.222.222 208.67.220.220 V2EX DNS 199.91.73.222 178.79.131.110

上面是一些常用的公共dns 在使用前先ping一下看看,因为有很多dns记不住,只记得114 google cloudflare的dns(比较好记。。) 于是,在ping的时候,我就发现了问题没有那么简单——ping不通(除了1.1.1.1,下面会讲)。说明网关进行了连接的阻断,即是没有简单的进行dns解析阻断(就算dns正常解析,网页也是打不开的,所以直接就不改dns了)。意料之中。。

发现1.1.1.1(cf dns)居然ping得通

上面已解释了,就不改dns服务器了

至于为什么可以ping的通,或者一些有关1.1.1.1的问题,可以看看V2EX上面的讨论:V2EX链接

简单说就是:网管为了方便,使用了一些好记的IP地址作为内网IP。。所以这个完全是因为偶然。。

建站的小伙伴应该对cloudflare不陌生,一家cdn提供商。但是这个1.1.1.1特殊性在这里:它不仅是dns服务器,同时也可以是cloudflare的cdn节点服务器。我的博客用的就是cloudflare的服务。

这里得提一下,在cloudflare官方使用的dns接入,应该是不能自选节点的。得使用cname接入。至于怎么使用cname接入,可以看看这篇文章Cloudflare 免费指定 CDN 节点教程

就算上不了网,也可以打开一些特殊网站我的博客

但是在学校一些场合里肯定是没法登陆修改网站的dns记录的。于是,既然已知域名对应的IP(1.1.1.1)地址,那么dns服务器的解析也不是那么重要了。只需要手动指定一下即可。

于是,懂的人自然就会去改hosts。

直接拿出记事本,修改hosts为:1.1.1.1 iinfo.ink

感兴趣的朋友也可以试一试:)

如图: hosts 至于怎么改hosts,这里就不多说了。运用好搜索引擎即可。 改完后可以ping一下看看有没有更改成功

方案一:运用反向代理

这个方案特殊性(偶然性)太强,必须要满足上面的条件才行。而且操作最复杂。 接前面的继续: 改完hosts之后,不出我所料,我的博客可以访问了——能在学校里看到我的博客不也是一件令人欣慰的事情吗? emm,既然如此,我也不能局限于我的博客了,于是,经过了一些神奇的操作(此处省略“亿”点操作),就在我的博客下面挂了一个反代脚本。

反代我用的是github上的开源项目miniproxy目前已经停止维护

em,这个莫非也是这个认证系统的漏洞?

这个方案也就简单提一下。下面用反代页面干嘛就不用我说了。

方案二:伪造成已登陆的设备

准备:

  1. network scanner用于扫描局域网设备
  2. mac地址修改/伪造工具 (两个都不是必须,但有的话会比较方便) mac

接前面,我怎么可能局限于访问我的博客呢,要干就要来彻底的。于是,查阅了一些资料后,又有了新的方案。 网关用于分辨不同设备的方式无非就是通过IP地址或者mac地址。

推测1:单IP记录(fail)

如果是简单的使用IP来分辨设备。那么流程就是:网关将已登录的设备的IP地址录入系统,当设备发送请求时,网关查询数据库中的一登陆IP记录,如果存在,即放行。 但是经过简单的推理,即可发现这种认证必然是不可行的。发现网关和我的电脑不在同一个网段/子网中,用nmap扫描一下后发现的确如此。因为我的设备在下面路由器的子网中,通过了一级或多级的nat地址转换,网关理论上只能获取到地址转换后的路由器的IP地址。况且IP地址比较容易伪造。 于是不需要尝试。

推测2:单mac记录(success)

如果是这样,根据上面类似的流程。我只需要扫描到局域网中的已登陆的设备,然后伪造成它的mac地址即可。mac地址具有唯一性,用mac作为记录的可能最大。

说干就干。


1.先扫描设备获取mac地址

networkscanner 按照图片中的配置后开始扫描,就可以扫描到许多局域网的设备了。至于要用什么mac地址,根据个人喜好来看吧。

如果没有此工具,也可以使用cmd命令:arp -a

当然这中间也有不少没有通过认证的设备。。

2.修改mac地址

然后用得到的mac地址,填入修改工具>确定 然后等待网络重新连接即可。

如果没有mac地址修改工具,也是可以在网卡高级选项中修改的。 如图,“网络地址”或者“物理地址”

注意:这里的值不能包含”-“


好的,过程就是这么简单。

另外,推测3:mac+IP 记录(未尝试)

聪明的网关应该会用这个方式认证。但是也可能我测试的网关就是如此,但是真实如何我就不得而知了。因为我的IP地址经过了nat,即使真的是这种认证方式,也妨碍不到我(滑稽)。

好吧,简单说就是一个修改mac地址完事

警告:同个网络中如果有两台相同mac地址的设备,可能会出现一些不可预料的问题。

所以,此方法只能保证能用,但是好不好用,没得保证。 要么就健康的走登陆认证吧。