这篇文章写于 2020,已经超过 6 年了。内容可能已经过时。
0x01 简述
云南招考频道是高考查分,录取查询的平台,每年高考分数均在此处查询,由于查询时是通过考号与查询密码生成口令后访问服务器页面,此方法通过利用漏洞生成口令提前查询高考分数,避免放榜后大量流量导致服务器卡顿,以及提前知高考成绩
0x02 入口
入口均为静态页面,此处截图已进行修改屏蔽,截图中的域名实际不存在
云南招考频道:https://www.ynzs.cn/

高考查分入口:https://www.ynzs.cn/{高考年份}gkcf/web.html

考生成绩报告:https://gk.ynzs.cn/{年份}/gkcf/{a}/{b}.html

0x03 操作过程
此处将使用2019高考查分页面查询2020的考生高考成绩
打开2019查分地址:https://www.ynzs.cn/2019gkcf/web.html

输入2020考生的准考证号,查询密码

点击查询,跳转错误页面

点击地址栏,将2019改为2020
[-] https://gk.ynzs.cn/2019/gkcf/xx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.html
[+] https://gk.ynzs.cn/2020/gkcf/xx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.html查询完毕

0x04 代码分析
2019的查询代码:https://www.ynzs.cn/2019gkcf/js/web.js
|
作用:
|
2020的查询代码:https://www.ynzs.cn/2020gkcf/js/wait.min.js
|
解密后,其中变量名称被压缩
|
作用分析:
|
由数据可以推断:
check.php不返回数据,而是直接重定向check.php的口令获取算法相同,口令考虑为MD5计算而来
0x05 总结反思
- 总结
- 口令使用
md5(准考证号 + 查询密码)获得 - 口令与年份无关
- 口令生成方法未知
- 口令使用
- 反思
- 在设计查询时,使用模板+数据渲染,不保存实体图片
- 增加页面
token,防止越权 - 简单的
unicode压缩并不能加密,可以使用以下算法加密JSaaencodejjencodeJS Fuck
- 短信推送更方便
微信
支付宝
导航 // 相关文章