高校心理健康平台遭SQL注入,大量学生账号可被拖取

admin 2026-09-07 04:17:40 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文记录某职业院校心理健康平台SQL注入漏洞的发现与验证过程,漏洞源于后端直接拼接用户可控参数导致报错注入,可读取学生账号等敏感数据。文章提供修复建议包括使用预编译SQL、参数白名单校验、关闭报错回显等,并强调授权测试边界与安全编码规范。 综合评分: 85 文章分类: 渗透测试,漏洞分析,WEB安全,安全建设,安全培训


高校心理健康平台遭SQL注入,大量学生账号可被拖取

三垣网安

2026年9月6日 13:24 湖南

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

前言

Web 安全中SQL 注入属于经典高危漏洞,攻击者通过可控输入点篡改 SQL 语句逻辑,可实现数据库读取、敏感信息泄露等风险。本次案例记录某职院业务系统 SQL 注入漏洞发现、验证全过程,仅用于安全技术学习研究。

⚠️安全提醒:本文所有测试操作均为授权范围内漏洞测试,禁止未授权对任何网站实施渗透测试行为

一、漏洞 / 测试基础信息

漏洞等级    高危

资产归属    某职业院校(事业单位备案)

资产网段    互联网

漏洞 URL    http://xxx.cn/user/login.do

备案类型    事业单位

备案域名    xxx.edu.cn

漏洞类型    POST 参数 SQL 注入

二、漏洞思路梳理

1.业务场景:系统为院校心理评估业务模块,包含团体辅导、咨询预约、心理测评等学生功能页面。

2.发现线索:浏览业务页面时,观察页面存在大量数据库查询交互,怀疑存在 SQL 注入风险。

3.验证思路:抓包获取业务 POST 请求,对请求参数做单引号闭合测试,观察服务端是否返回 SQL 报错信息。

4.利用思路:确认报错注入后,构造注入 Payload 尝试读取数据库库名,评估数据泄露风险。

5.边界约束:因为会对业务产生较大影响,授权测试场景下停止深度脱库操作。

三、实操 / 测试流程

  1. 登录学生身份账号,进入业务页面,点击【团体辅导】功能模块,发现有很多查询,可能存在sql注入。

2.使用抓包工具捕获页面交互的 POST 业务请求。

修改 POST 请求内argsList参数,输入 SQL 闭合字符,发送请求进行测试;

观察服务端返回响应,页面返回 SQL 报错信息:

{“msg”:”错误:CallableStatementCallback:Data truncated for column ‘inPageNum’ at row 1;nested exception is java.sql.SQLException: Data truncated for column ‘inPageNum’ at row 1″,”code”:1},确认存在报错型 SQL 注入漏洞。

请求 POST 参数原文:proName=plug_qdbh_groupCase_getGroupMainForStu& argsList=4&argsList=36276&argslist=&argslist=1& argsList=-1&argsList=-1&argsList=&argsList=& argsList=1&argsList=20

3.持续构造 SQL 注入 Payload 进行测试,成功爆出数据库名。

评估风险:该点可进一步读取大量账号、数据库账号敏感数据,但考虑对院校业务影响,测试停止,不再做深度利用。

HTTP 请求关键信息摘录:

Content‑Type: application/x‑www‑form‑urlencodedCookie: xlySessionId= e3f93b5e‑6bf2‑4c89‑814f‑2be421d3ba5eReferer: http://xxx.edu.cn/plug/main/groupCase_vue3/groupStudent.html

四、漏洞总结

4.1 核心问题

业务后端直接将前端可控的argsList请求参数拼接进 SQL 语句执行,没有做参数过滤、没有使用预编译语句(PreparedStatement),用户可控输入破坏原有 SQL 语法,触发报错注入。

4.2 漏洞危害

  1. 敏感信息泄露:攻击者可读取学生账号、业务数据、数据库账号密码。
  2. 业务数据篡改风险:条件满足情况下可实现增删改数据库数据。
  3. 院校属于教育单位,大量师生个人信息泄露,会带来隐私泄露、身份冒用次生风险。
  4. 高危漏洞满足等保测评高危风险项,会造成合规风险。

4.3 修复建议

  1. 优先使用预编译 SQL(PreparedStatement),杜绝直接拼接用户输入到 SQL 语句,这是根治 SQL 注入最有效手段。
  2. 对前端传入参数做严格白名单校验,对数字型参数强制做类型转换,拒绝非法字符。
  3. 关闭生产环境数据库 SQL 报错直接回传给前端的配置,避免报错泄露数据库结构。
  4. 数据库账号做最小权限分配,业务账号不允许高权限,降低漏洞被利用后的损失。
  5. 上线前开展安全测试,重点对 POST 提交参数、查询类接口做注入检测。
  6. WAF 设备配置 SQL 注入规则,作为防护补充手段。

4.4 测试心得

  1. 教育类系统业务接口繁多,很多业务查询接口容易忽略输入校验,高危漏洞出现概率较高。
  2. 报错注入是很常见的注入类型,业务返回完整异常堆栈会极大方便攻击者探测漏洞。
  3. 授权渗透测试中,评估会对业务造成较大影响时,应当及时停止深度利用,只完成漏洞证明即可。
  4. 不要只关注登录接口,业务内部功能接口,往往更容易存在注入等安全缺陷。

五、总结

本次案例是典型业务接口 SQL 注入,漏洞根源是代码编码层面安全缺失。很多开发人员更多关注业务功能实现,忽略输入输出安全校验。对于高校、事业单位系统,存储大量师生敏感信息,一旦高危漏洞被恶意攻击者利用,会带来严重的数据泄露事件。开发、运维需要建立安全意识,在开发阶段落实安全编码规范,定期开展漏洞扫描与渗透测试,提前消除安全隐患。

六、安全声明

  1. 本文案例仅用于网络安全技术科普学习。
  2. 严禁任何个人在未获得书面授权前提下,对互联网任何网站、系统实施扫描、渗透、注入测试,未授权网络测试属于违法行为。
  3. 若发现网络安全漏洞,请遵循漏洞披露规范,联系资产单位或者漏洞响应平台提交漏洞,不要私自抓取、泄露敏感数据。

点击关注三垣网安,了解更多网安知识

SQL注入


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:三垣网安 《高校心理健康平台遭SQL注入,大量学生账号可被拖取》

评论:0   参与:  0