漏洞挖掘
首先需要锁定目标,而想要找到脆弱资产,从中学相关的应用入手往往是一个不错的起点。经过初步的浏览和测试,我们锁定了一个学校的小程序作为本次的测试目标。

为了观察和分析流量,我们需要打开Burp Suite等代理工具,并将手机或模拟器的网络代理设置好,确保小程序的所有请求流量都能经过抓包工具。然后,点击小程序进行登录操作。

小程序通常采用微信一键登录授权。直接点击“允许”进行授权即可完成登录(注:撰写本文时账户已是认证状态。如果是首次登录,通常会要求用户输入姓名、身份证号、班级等信息完成实名认证。初步测试发现,该认证流程缺乏有效验证,可以输入任意信息通过认证)。

认证成功后,会进入小程序首页。接下来需要对各个功能点进行系统的安全测试,这里我们直奔主题,描述发现的核心漏洞点。
点击首页的“校友查询”功能。

页面会跳转至专门的校友查询界面。

点击“同届校友”按钮,页面会直接列出同年级的同学列表。

此时,在代理工具中拦截点击任意一个同学“查看详情”的请求。观察服务器返回的响应,会发现其中包含了该名学生的详尽个人信息,甚至包含身份证号、手机号等敏感数据。同时,请求参数中一个名为 member_id 的字段引起了注意,这往往是越权访问漏洞的潜在信号。

直接将这个数据包发送到Repeater模块,尝试修改 member_id 参数值为其他数字(例如递增或递减),然后重放请求。

测试结果表明,漏洞确实存在。服务器会返回其他 member_id 对应的用户敏感信息,实现了越权数据访问。为了验证影响范围,可以将这个请求发送到Intruder模块,对 member_id 进行批量遍历。

通过自动化遍历,可以成功获取到系统内大量注册用户的个人信息,造成严重的信息泄露。除了“校友查询”,其他功能模块也存在类似的接口,漏洞原理相同,此处不再赘述。
资产扩展与通杀漏洞验证
发现单个学校的漏洞后,我们不禁思考:一所普通高中有能力独立开发这样一套系统吗?可能性不大。这极有可能是由第三方软件公司开发并出售给多个学校的标准化产品。
既然是第三方产品,自然不会只服务于一家客户。因此,下一步就是寻找使用了同一套系统的其他学校资产,尝试验证这是一个“通杀”型漏洞。
首先尝试在微信内搜索相关小程序或公众号关键字。

但搜索结果中的目标大多不匹配。更有效的方法是:将小程序的路径转换为可直接在浏览器访问的Web链接。访问该链接后,我们看到了系统的管理后台登录入口。

面对后台,常规思路是测试弱口令或爆破,但该系统存在滑动验证码,增加了直接爆破的难度。尝试将小程序登录成功后的Token用于后台访问,也被提示权限不足。使用目录扫描工具对后台域名进行信息搜集,收获不大,包括尝试将接口路径中的 admin-api 替换为小程序端的 app-api 进行测试,均未成功。



后台暂时没有取得突破,于是回归资产发现的思路。我们可以从登录页面提取一些特征,如页面标题(Title)、正文内容(Body)中的关键字(例如“校友会管理系统”),将其放入网络空间测绘引擎中进行搜索。

点击搜索结果中的几个IP或域名进行访问,发现确实存在一模一样的后台管理登录页面,这证实了我们的猜想——多家学校在使用同一套系统。
为了更全面地收集资产,可以结合Hunter、Quake等多家测绘平台,并使用公司备案信息等作为辅助搜索条件,进行交叉搜索。

后续,通过IP段、域名特征等方式,可以搜集到更多相关资产。为了提高效率,应将所有初步发现的资产(URL/IP)导出,去重整理成一个列表,然后使用 httpx 这类工具进行批量探活和截图,避免人工逐一访问,极大提升效率。
httpx.exe -l url.txt -mc 200 -t 10 -meout 10 -o result.txt --screenshot .

探活截图后,我们只需查看那些具有相同登录界面的资产。从这些资产的URL或页面信息中,通常可以提取出对应的学校名称。

拿着这些学校名称,返回到微信搜索对应的小程序。找到后,重复文章开头所述的测试步骤(登录、认证、测试校友查询接口越权)。测试结果验证了这是一个通杀漏洞,影响面广泛。
意外发现
在对批量资产进行筛查的过程中,有时还会有额外的收获。例如,我们可能发现某些学校的后台管理系统使用了默认或弱密码,从而直接进入后台。


至此,从一个小程序的越权漏洞入手,通过合理的逻辑推理和高效的资产测绘技巧,我们成功地将其扩展成了一个影响多个教育机构的通杀型安全风险。这种思路在渗透测试和漏洞挖掘中非常实用,也希望这篇实战思路能为大家带来一些启发。如果你对Web安全、漏洞挖掘有更多兴趣,欢迎来到云栈社区与更多技术爱好者交流探讨。