校园网免流攻略(基于逻辑漏洞、DNS伪装包或IPv6)

仅供技术探讨

利用校园网业务逻辑漏洞实现免流

逻辑漏洞涵盖非常广,它的思路大体都是一个方向,但是具体的实现要因“洞”而异了。

这里举的是我们学校giwifi的例子,由于漏洞在被很多人知道和使用后已经修复,也就不必遮掩了。这个漏洞的出现已经不能说是开发人员的疏忽了,简直就是开发人员为了免费上网而故意留的后门。。。

移动端Giwifi在连接后需要客户端的登录认证,当未检测到Giwifi客户端时,会自动向http://down.gwifi.com.cn/getApp.htm?os=android这个接口发送请求以下载客户端。几秒钟之内客户端下载完成,若你在这期间进行了抓包或其他访问请求,你会发现所有的请求都是成功的!也就是说,在这几秒钟之内,Giwifi的外网访问是完全开放的。并且此时的Giwifi是不限速的。

于是利用方法就很简单了:对这个接口不断发送请求,获取开放权限。于是便出现了所谓“三行代码上网法”:

while True:
    requests.get(url='http://down.gwifi.com.cn/getApp.htm?os=android')
    time.sleep(10)

如果出现网络不稳定,将延时调低即可。

防范的方法也很简单(本来也就该这么做

  • 将客户端放在内网,直接通过内网传输
  • 过滤请求

利用DNS伪装包实现免流

原理:连接校园网后,上网请求会从TCP443端口发出,未登录校园网时请求被拦截。但UDP53端口也就是DNS解析服务所在端口的请求一般不会被拦截,而我们要做的就是将正常的上网请求数据包伪装成DNS数据包,从53端口通过,实现免流上网。

此方法需要

  • Windows平台
  • dns2tcp
  • 一台服务器(140.143.38.75)(过期了就不码了)
  • 一个可用域名(dust1.top)(懒得码了)

判断端口是否可用:

未登录校园网状态下清空DNS缓存并使用校外DNS服务器进行nslookup查询。

如图查询成功,则此方法理论可行。

接下来进行的操作是:正常的上网请求数据包被伪装成查询dust1.top的DNS请求包,而dust1.top被预先设定了一个NS记录,指定140.143.38.75来进行解析。140.143.38.75中的dns2tcp将伪装的DNS数据包还原成正常的http数据包,获取http响应后再伪装成DNS响应包返回主机,主机上的程序再对它还原,则完成了一次完整的上网操作。

通过以上的原理介绍,应该可以感觉出这种方法就算可行,速度也会比较慢。但为了技术(免费)还是进行下去了。

首先要注意服务器的安全组规则,53、80、443端口都不要拦截。

然后是域名解析记录,如图:

NS记录指定的域名,A记录中给出IP地址。

在服务器上安装dns2tcp,编辑/etc/dns2tcpd.conf中listen值为服务器内网IP,domain值为域名。

服务器执行:

screen -S dns2tcpd               #创建后台会话 
dns2tcpd -f /etc/dns2tcpd.conf -F -d 2      #启动dns2tcp

Windows本地执行:

dns2tcpc -r ssh -z dust1.top 140.143.38.75  -l 8888 -d 2

再新建一个本地shell,IP地址127.0.0.1,端口8888 ;然后点击隧道,类型选择socks4/5,端口填1080。

Internet选项中,依次选择”连接”->”局域网设置”->”为LAN使用代理服务器”->”高级”

在socks/套接字输入框中,要使用的代理服务器地址填127.0.0.1,端口填1080。

通过此代理访问网页,shell中出现大量数据包。

最终效果:

搭建基于Ipv6的Shadowsocks实现免流

Ipv6号称“让地球上每粒沙子都有一个IP地址,这里有一篇科普性的文章。

这里可以检测你的网络是否接入了IPv6。

此方法需要:

  • 校园网本身接入IPv6
  • 一台支持IPv6连接的vps
  • shadowsocks

这种方法所谓的免流,其实就是部分校园网走IPv6协议时流量不计费。所以你需要做的只是在服务器上配置好基于IPv6的ss,方法和普通的ss配置大同小异。

需要注意的是,即使ss开启全局代理,也不是所有的应用流量都会经过代理。

文章目录
  1. 1. 利用校园网业务逻辑漏洞实现免流
  2. 2. 利用DNS伪装包实现免流
    1. 2.1. 判断端口是否可用:
  3. 3. 搭建基于Ipv6的Shadowsocks实现免流
|