GD-WLAN登录页面抓包及curl模拟方法
摘要:
校园网Web认证界面点击登录时会发送一个 Post 请求,密码使用时间戳作为密钥进行 RC4 加密(后经验证,时间戳可为任意值),服务器根据密钥解密并验证账户与密码,验证通过便可以正常上网。因而可以采用curl等工具模拟 Post 请求,完成登录。实现路由器、服务器、手机、平板等快捷联网。
1、抓包过程:
-
使用Chrome等浏览器打开认证页面:
-
按 F12 启动开发者选项,在 网络 界面勾选 保留日志 ,点击 登录 进行抓包:
-
打开登录 Post 请求的数据包,记录表单数据:
获取到的表单数据:opr=pwdLogin&userName=190402119&pwd=8554a893831318fc&auth_tag=1709788455684&rememberPwd=1
2、模拟 Post 请求:
Windows:
使用CMD运行以下命令(引号部分为获取到的表单数据):
curl -d "opr=pwdLogin&userName=190402116&pwd=d520e5601c21&auth_tag=1697423769777&rememberPwd=1" https://10.91.200.211:444/ac_portal/login.php -k
正确登录后的反馈如下(可以保存为 .bat 文件一键执行):
Linux(OpenWRT、Ubuntu、DSM 等):
使用终端运行,其余一致,略。
iOS:
使用捷径功能,向 https://v.sut.edu.cn:444/ac_portal/login.php 发送 Post 请求并获取内容,若包含 success 则提示 登陆成功 :
3、加密算法分析:
对表单内容整理如下:
字段 | 值 |
---|---|
opr(操作) | pwdLogin |
userName(用户名) | 190402116 |
pwd(密码密文) | d520e5601c21 |
auth_tag(用户认证标签) | 1697423769777 |
remamberPwd(是否记住密码) | 1 |
其中, pwd 和 auth_tag 每次登录都会变化。
不难看出, auth_tag 实际上是个13位时间戳,实为每次登录的时间,如图:
而 pwd 则是使用时间戳 auth_tag 作为密钥进行 RC4 加密后的结果:
尝试使用任意时间戳作为密钥,对密码进行加密,对应登录命令如下:
curl -d "opr=pwdLogin&userName=190402119&pwd=6468854cb9d8e0fb&auth_tag=6&rememberPwd=1" https://10.91.200.211:444/ac_portal/login.php -k
经测试,可以成功登录: