各接入应用管理员、开发者:
统一身份认证系统将于2023年11月15日起将停止使用通配符的应用进行认证,请未登记备案的服务尽快完成备案后进行统一身份认证系统对接。
对接联系邮箱 [email protected] 或电话63601592。
利用 USTC CAS 给同学展示密信(使用场景示例:你是助教,给学生自助查分)。
在你的服务器上执行以下操作:
git clone https://github.com/yusanshi/ustc-cas-secret && cd ustc-cas-secret
;- 创建
data.json
,仿照data.sample.json
在其中写入你想要展示给每个人的数据(学号中的字母大写,数据支持 HTML); pip install fastapi "uvicorn[standard]"
;python backend.py
;- 绑定域名、反向代理到
http://127.0.0.1:8088
(如 Nginx 服务器使用 proxy_pass)。
“常规”指你有一个 ustc.edu.cn 的二级域名:foobar.ustc.edu.cn。
- 用户访问 https://passport.ustc.edu.cn/login?service=https://foobar.ustc.edu.cn/something (这里的 service 要求其中的 host 以 ustc.edu.cn 结尾)
- 登录成功后,自动跳转到
service
并将在末尾 append 上 ticket:https://foobar.ustc.edu.cn/something?ticket=ST-XXXXXXX - 你作为 foobar.ustc.edu.cn 所有人,可以根据拿到的 ticket 从 https://passport.ustc.edu.cn/serviceValidate 获取用户信息(GID、学号等)
显然,我们往往没有这样的二级域名,因此我们需要 hack。
利用个人 FTP 空间 home.ustc.edu.cn
,下面的“致谢”的项目即是这个思路。
利用漏洞。具体来说,前文的 这里的 service 要求其中的 host 以 ustc.edu.cn 结尾
实际实现的逻辑是 if ".ustc.edu.cn/" in service
,所以我们可以将 service
选为 https://example.com/www.ustc.edu.cn/
或 https://example.com/?query=.ustc.edu.cn/
。本项目用的就是这个思路。