上海疫情数据:得出10项颠覆性结论

网友们越来越神通广大了.......

母子乱伦:和儿子做了,我该怎么办?

2021年推特网黄Top10排行榜

《敦刻尔克》引发的惨案:袁腾飞怼周带鱼被封号

生成图片,分享到微信朋友圈

自由微信安卓APP发布,立即下载! | 提交文章网址
查看原文

利用快捷指令自动登录校园 Wi-Fi(重订 20.11.20)

XavierWang3P 鸟之言语 2022-08-28
点击上方“蓝字”,发现更多精彩。

每次在教室、宿舍里连上学校的 Wi-Fi,要等登录页面弹出来,iOS 用户还会遇到无法登录的问题。在手机上,因为弹出登录页面使用了隐私模式(Privacy Mode),记住密码这一功能也无法正常使用,真是气死人辽。

登录流程分析

先来看一下设备登录校园网的流程。

登录流程

和家里带密码的无线网络不同,校内的无线网络 JYU-S、JYU-T 将无线信号与用户鉴权两个部分拆散,无线 AC(Access Control,接入管理) + AP(Access Point,接入节点)负责分发无线信号与动态 IP 分发,用户鉴权部分则由 Dr.com 的认证网关伺服器负责,此类认证网关通常采用专用客户端或强制门户实现用户认证(Captive Portal)。

设备连接上校园网后,系统会通过访问特定网址来检测当前网络是否能够互联网,但因为我们没有通过网关的登录认证,认证网关会将原本应该去向 A 的访问请求强制重定向至 B,也就是认证页面(Web Portal)。

来到登录页面,在这个页面上,我们只需输入校园网账号与密码,点击登录,便完成了认证流程。学习过 php 语言的同学不难猜出,这个页面是通过 POST 的方式向认证网关发送了一个带有账号与密码的登录认证请求,认证伺服器收到并核验完成后,我们就可以上网了。

既然是 POST 请求,那事情就简单很多了,抓接口 + 分析 + 重放。

制作捷径

先来看看最终效果。

对比效果

提取账号信息

出于安全考虑,传递的密码使用了混淆后的密码。提取混淆后的密码有两种方式:抓包、重算。

抓包

进入校园网的登录页面(http://dr.com/a30.htm)[1],打开浏览器的开发者工具(本文以 Chrome 浏览器为例),切换到 Network 选项卡,勾选菜单栏上的 Preserve log(保存请求日志)。

登录页

在页面上输入校园网账号、密码,点击登录,Network Tool 便会将网页的所有请求记录下来。

开发者工具

点击列表的 a30.htm,在 General 一栏中可以得知这个请求是一个 POST,下方的 From Data 记录了 POST 请求发送的所有信息,其中包括校园网账号与混淆后的密码,将 upass 的值记录好,后面会用到。

参数作用
DDDDD000000000校园网账号
upass*经过混淆后密码
R10固定值
R21固定值
para00固定值
0MKKey123456固定值
R61固定值

MD5 计算

除了通过抓包获取混淆后的密码,我们也可以自行计算出 upass 的值。在登录页面的 JS 文件[1] 中展示了混淆过程:MD5(pid+password+calg)+calg+pid。其中 pid=2、calg=12345678,password 为校园网账号的密码。下面以密码(100000000)为例。

混淆

第一步:组合 pid、password、calg 三个字符串,得到 2/100000000/12345678(结果不包 /),然后进行 MD5 运算,得到 32 位小写加密后的字符串 2929a4a0f01fd2da1fa7f49c346b2049

第二步:将字符串与 calg、pid 字符串组合,即 2929a4a0f01fd2da1fa7f49c346b2049/12345678/2(结果不包 /),组合完成得到的字符串即为 upass 的值。

混淆过程

通过 Postman 重放该请求,返回了“登录成功”的提示,表明该接口目前可用。接下来便可以开始制作捷径。

Postman 重放

填充信息

感谢南区群友建议,使用 dr.com 可自动解析至本区域的认证地址。(20.11.19)


因校内不同区域使用的认证网关服务器不一致,东区、中区用户在宿舍区与教学区需要使用不同的登录捷径,且无法使用场景自动化。(20.11.19)

登录校园网捷径下载链接:iCloud(https://bit.ly/3lMIbmR)[3]

按照不同区域,选择对应区域的捷径:东区、中区[4]、南区、教学楼[5]。(20.11.19)

温馨提示:第一次使用捷径,需要完成以下步骤:

1、快捷指令 APP 下载地址:App Store(https://apple.co/2UE2QO5)[4] 

2、在 设置 - 快捷指令 中打开 允许不受信任的快捷指令,(开启前需要先在快捷指令中运行一次捷径)

在添加捷径时,请按照初始化流程的提示,填写校园网账号与混淆后的密码(即 2.3 步骤获取的 upass 字符串)。

捷径初始化

添加 登录校园网 捷径后,请打开该捷径的 网络访问权限 与 通知权限(点击 登录校园网 捷径文件右上角的 更多继续点击 更多,在下方勾选 允许访问互联网 与 通知提示 两个选项)

捷径权限设置

填写与开启权限后,便完成了捷径的安装步骤,连接 Wi-Fi、运行捷径,如果成功登录,那么会弹出以下提示;而如果出错,则需要进入捷径的编辑界面,找到 获取 URL 内容 下方的文本框,查看错误提示,在目前接口未调整的情况下,多半为账号或密码填写错误导致无法登录。

运行捷径

场景自动化识别

除了简化操作以外,iOS 13 中的快捷指令还提供了自动化操作,当触发某些条件后会运行指定操作。借助这个特性,我们可以设定为连接到校园 Wi-Fi 则自动运行登录捷径,减少操作。

自动化场景

进入 快捷指令 首页的底部的 自动化 选项卡,点击右上方加号,选择 创建个人自动化

在条件列表中选择 无线局域网,选中 JYU-S、JYU-T、JYU-S(5G)、JYU-T(5G) 四个无线网络,点击下一步。

在操作页,点击下方的 搜索 App 和操作,输入 快捷指令,选择 运行快捷指令,运行的捷径设置为 登录校园网。点击下一步并保存该自动化操作。

进入 设置 - 无线局域网设置,将设备连接到 JYU-S,如无意外,系统会弹出运行快捷指令的提示,点击运行,捷径会自动帮你完成身份认证的操作。

连接 + 自动登录

尾言

完成以上操作后,连接校园 Wi-Fi 的步骤会方便许多。文中只演示了 iOS 上的快捷操作,本捷径的原理是通过 HTTP POST 发送登录请求 + HTTP GET 判断联通情况,根据此方法可以迁移至其他工具,Android 系统可以使用 Tasker 执行,macOS 与 Windows 系统则可以采用 curl 执行的方式。

以上方法仅适用于使用 Dr.com 作为认证网关的院校,如果使用其它认证系统,接口会有所差异,请自行更改。

参考链接

•如何利用 iOS 快捷指令自动化登录校园网[7]•Wikipedia:Captive Portal[8]•连接Wifi时自动弹出登录页面是如何做到的?[9]

引用链接

[1] 登录页面: http://dr.com/a30.html
[2] JS 文件: http://210.38.163.113/a41.js
[3] iCloud: https://www.icloud.com/shortcuts/e8128c3d2ff9424ebcc81e0dbcd64167
[4] 东区、中区: https://www.icloud.com/shortcuts/d55f5df720b64f93aec1022ad033b471
[5] 南区、教学楼: https://www.icloud.com/shortcuts/d4290ae388ba4e9e8a190dcd88288bad
[6] App Store: https://apps.apple.com/us/app/shortcuts/id1462947752
[7] 如何利用 iOS 快捷指令自动化登录校园网: https://sspai.com/post/58189
[8] Wikipedia:Captive Portal: https://zh.wikipedia.org/wiki/%E5%BC%BA%E5%88%B6%E9%97%A8%E6%88%B7
[9] 连接Wifi时自动弹出登录页面是如何做到的?: https://blog.csdn.net/bjbz_cxy/article/details/95231192

【技术分享】苹果无线生态系统安全性指南
这些问题,让我来回答你!
看雪2022 KCTF 秋季赛 | 第三题设计思路及解析
大公司系统太多,如何实现账号互通?
蓝队技战法总结

文章有问题?点此查看未经处理的缓存