Projectworlds在线录取系统1.0 SQL注入
风险等级: 中等
本地利用: 否
远程利用: 是
CVE编号: CVE-2025-8471
漏洞概述
Projectworlds在线录取系统1.0版本存在SQL注入漏洞,攻击者可通过构造恶意SQL语句获取数据库敏感信息。该漏洞位于adminlogin.php文件的a_id参数中。
技术细节
漏洞利用代码结构
利用程序采用C语言编写,使用libcurl库发送HTTP请求,包含以下主要功能模块:
内存管理结构
|
|
SQL注入载荷
程序实现了多种SQL注入技术:
两阶段注入载荷:
|
|
深度注入载荷: 包含22种不同的SQL注入变体,如:
'/**/OR/**/1=1--'/**/UNION/**/SELECT/**/NULL,NULL--'/**/AND/**/SUBSTRING(@@version,1,1)='5'--
SQL错误关键词检测
程序检测响应中包含的SQL错误关键词,如:
- “syntax error”
- “mysql_fetch”
- “unclosed quotation mark”
- “database error”
主要功能函数
payloadInject函数:执行SQL注入攻击,发送编码后的恶意载荷simpleRequest函数:发送正常请求获取基准响应长度value函数:比较正常响应与注入响应的长度差异logFile函数:记录攻击结果到日志文件
攻击流程
- 发送正常请求获取基准响应长度
- 遍历所有SQL注入技术载荷
- 对每个载荷进行URL编码
- 发送恶意请求并分析响应
- 检测响应中的SQL错误关键词
- 记录成功的注入尝试
技术特点
- 支持Cookie认证
- 详细的Verbose模式输出
- 自动重定向跟随
- SSL证书验证绕过
- 自定义HTTP头部
- 响应长度比较分析
防御建议
- 对用户输入进行严格的参数化查询
- 实施输入验证和过滤
- 使用预编译语句
- 限制数据库用户权限
- 部署Web应用防火墙
该漏洞利用代码展示了SQL注入攻击的完整流程,为安全研究人员提供了分析此类漏洞的实用工具。