文章总结: 本文记录某职业院校心理健康平台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.边界约束:因为会对业务产生较大影响,授权测试场景下停止深度脱库操作。
三、实操 / 测试流程
- 登录学生身份账号,进入业务页面,点击【团体辅导】功能模块,发现有很多查询,可能存在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 漏洞危害
- 敏感信息泄露:攻击者可读取学生账号、业务数据、数据库账号密码。
- 业务数据篡改风险:条件满足情况下可实现增删改数据库数据。
- 院校属于教育单位,大量师生个人信息泄露,会带来隐私泄露、身份冒用次生风险。
- 高危漏洞满足等保测评高危风险项,会造成合规风险。
4.3 修复建议
- 优先使用预编译 SQL(PreparedStatement),杜绝直接拼接用户输入到 SQL 语句,这是根治 SQL 注入最有效手段。
- 对前端传入参数做严格白名单校验,对数字型参数强制做类型转换,拒绝非法字符。
- 关闭生产环境数据库 SQL 报错直接回传给前端的配置,避免报错泄露数据库结构。
- 数据库账号做最小权限分配,业务账号不允许高权限,降低漏洞被利用后的损失。
- 上线前开展安全测试,重点对 POST 提交参数、查询类接口做注入检测。
- WAF 设备配置 SQL 注入规则,作为防护补充手段。
4.4 测试心得
- 教育类系统业务接口繁多,很多业务查询接口容易忽略输入校验,高危漏洞出现概率较高。
- 报错注入是很常见的注入类型,业务返回完整异常堆栈会极大方便攻击者探测漏洞。
- 授权渗透测试中,评估会对业务造成较大影响时,应当及时停止深度利用,只完成漏洞证明即可。
- 不要只关注登录接口,业务内部功能接口,往往更容易存在注入等安全缺陷。
五、总结
本次案例是典型业务接口 SQL 注入,漏洞根源是代码编码层面安全缺失。很多开发人员更多关注业务功能实现,忽略输入输出安全校验。对于高校、事业单位系统,存储大量师生敏感信息,一旦高危漏洞被恶意攻击者利用,会带来严重的数据泄露事件。开发、运维需要建立安全意识,在开发阶段落实安全编码规范,定期开展漏洞扫描与渗透测试,提前消除安全隐患。
六、安全声明
- 本文案例仅用于网络安全技术科普学习。
- 严禁任何个人在未获得书面授权前提下,对互联网任何网站、系统实施扫描、渗透、注入测试,未授权网络测试属于违法行为。
- 若发现网络安全漏洞,请遵循漏洞披露规范,联系资产单位或者漏洞响应平台提交漏洞,不要私自抓取、泄露敏感数据。
点击关注三垣网安,了解更多网安知识
SQL注入
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:三垣网安 《高校心理健康平台遭SQL注入,大量学生账号可被拖取》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论