校园网自动认证python脚本的实现
背景:
之前购买了一台ubuntu server放在实验室里准备当服务器,安装好后准备ssh连,发现怎么也连不上,突然发现原来还没有校园网认证。之后花了大力气没有搞定,最终被迫买了一台小米4A路由器来实现ubuntu server的上网。
利用路由器的DMZ功能,将server的所有端口全部转发出去,相当于访问实验室的ip直接访问到了server,还挺方便。
之后无敌的vaala看到了我的路由器,便和我说起了他的windows上的校园网自动认证脚本。
linuxs上的自动认证很简单的,windows还需要整各种东西,麻烦的要死。 ——vaalacat
我便萌生了自己写一个自动认证脚本的想法。
主要思路:
-
访问http://www.msftconnecttest.com/redirect,这是微软官方跳转页面。我们在校园网没有连上的情况下访问,会返回以下结果。
1
2$ curl http://www.msftconnecttest.com/redirect
<script>top.self.location.href='http://172.26.156.158/eportal/index.jsp?wlanuserip=6b0dec7423e70a581b2fdb0517f86594&wlanacname=c21078ebee2bcf114f01433fbc2251db:&ssid=&nasip=cb287e62ace185edc3fe204ece33bff2&snmpagentip=&mac=7fc6643e4951e6fdcbeed331dffbbdcb&t=wireless-v2&url=bce0e6cfc64b38a70de132171bb75a3c9c9fd810bbc35379df1f2cd44001cac3edab421ca50cdf5e&apmac=&nasid=c21078ebee2bcf114f01433fbc2251db&vid=7c88e8aa1edda8df&port=6602c686c4c12d10&nasportid=d4fc8695056bf48b4ed4e589f32650aa8b36e3d59b1b63d1cfaa8c5c0218407a3db653ca579e88c9'</script>这实际上返回了一个网页的内容,这个网页只有一个script标签,当我们访问到这个网页,就会被跳转到后面的一大串url。而那个url实际上就是我们的校园网的登录界面。
这个url里有非常多的信息,这些信息我们在之后post请求的时候都需要。
-
无敌Burpsuite yyds!之前做ctf题只是稍微了解了burpsuite,没有了解到他的强大。这次我下定决心,在windows上安了一个Burpsuite2021-5-1破解版(不管系统干不干净了,大不了之后重装2333).
跟着教程破解好之后,我们设置好监听,然后在这个校园网认证界面登录抓包。我们就会获得一个http请求包,我们可以看到,每次请求实际上请求了下面这个接口
1
http://172.26.156.158:80/eportal/InterFace.do?method=login
我们抓到包了,那如何能够把这个包转化为我们熟悉的python requests请求来实现自动化登录呢?这时候就需要介绍到Burpsuite中强大的插件库了,(之前用都不知道有插件库这个东西555,太菜了)
我们在Burpsuite的菜单栏里点击Extender,然后点击下方的BApp Store, 安装一个
Copy As Python-Requests
插件,然后在报文段右键选择Extensions->Copy as requests
然后再复制到一个python文件里,你就获得了一份代码非常规范完美的requests脚本啦!之后的工作就简单了,详情见我的github
战术总结
- 这次经历算是真正意义上第一次把所学的东西用来解决问题的的实践。
- 写好了脚本,准备去把实验室的路由器拿回来。突然想到要是拿回来了,到时候在实验室只有ubuntu-server能上网,笔记本上不了网(实验室只有一根网线,配的静态ip),好像路由器还必须放在那了2333。
- 虽然脚本写好了没有实际派上用场,但是写完了还是很高兴。也希望能够帮助到之后需要的同学!