本文分享了一个通过好靶场练习后积累思路,成功通杀EDU低危漏洞的案例。作者以某智慧校园平台为目标,通过下载Vue前端JS文件提取接口,借助正则匹配免鉴权配置,最终发现并验证了一个无需认证即可获取云Token的接口,展示了SPA渗透测试的实用技巧。
2. 通杀思路
EDU截图



Hello,宝子们,今天给大家分享的是一位师傅通过好靶场练习之后积累思路拿到一个小通杀的案列。
思路分享:某云的Token接口
起因
目标是某智慧校园平台,先是****.edu.cn,就是个 Vue 的 SPA。 SPA 的好处就是前端里啥都打包在 js 文件里。所以第一步永远是把所有东西全拉下来。
寻找接口
JS 文件下下来之后,用正则把里面所有 /xxx 这种路径全提出来。这里有个坑,直接搜字符串匹配 "/xxx" 会漏掉很多用拼接的方式拼出来的路径,所以我当时是直接把所有带斜杠的字符串先导出来过一遍,再筛出像接口的。
筛出来的接口一堆:/a**et/*、/d**m/*、/os/*、/m*s/d***ce/info/v***Url/*,还有 /c***er/a*r/v1/load***。当时看到 load*** 这个名字就觉得有戏——"加载某token"这种接口。
判断免鉴权
光有接口清单不够,还得知道哪些接口不用带 token 就能调。这个平台前端有 axios 拦截器,会判断请求有没有 **Token / **Token / ***ist 这几个标志。
所以我用了个正则,去匹配 js 里 "/接口路径" 后面一小段内容里带 ****Token:!0 的。这种匹配方式有个好处:能把接口和它的鉴权配置一起捞出来,不用一个个去翻调用点。
结果 load*** 就在这个列表里,和 /**/rdspwd、/***/token 这些登录接口排一起——也就是说它被标记成免鉴权的。当时心里已经有个八九成把握了。
如何验证
直接 GET /****/****/****/v1/load***,不带任何 cookie 和 token,返回了 d***.******Token,格式是 24.xxx.2592000.过期时间.282335-15812841。
这里有个细节,某家的 AIP 的 token 格式是 2********.<appid>,最后那段就是 appid。所以光从返回的 token 就能看出用的是哪家的。
好靶场(相关练习靶场)
http://hbc.haobachang.com/findbug?keyword=vue
原文始发于微信公众号(信安笔录):EDU低危漏洞也可以通杀
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-


评论