projectworlds在线招生系统1.0 - SQL注入漏洞利用详解

本文详细分析了projectworlds在线招生系统1.0版本存在的SQL注入漏洞(CVE-2025-8471),提供了完整的漏洞利用代码和技术实现细节,包括多种SQL注入技术和自动化检测方法。

projectworlds在线招生系统1.0 - SQL注入漏洞利用

漏洞概述

  • CVE编号: CVE-2025-8471
  • 漏洞类型: SQL注入
  • 影响系统: projectworlds在线招生系统1.0版本
  • 漏洞位置: /adminlogin.php 参数 a_id

技术细节

漏洞利用代码结构

1
2
3
4
5
6
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
#include <stdlib.h>
#include "argparse.h"
#include <time.h>

主要功能模块

1. SQL注入载荷

包含多种SQL注入技术:

两阶段注入载荷:

1
2
3
INSERT INTO stages (id,code) VALUES (3, 'UNION SELECT NULL --');
SELECT SLEEP(2);
SELECT code FROM stages WHERE id = 3;

深度注入载荷: 包含22种不同的SQL注入变体,包括:

  • 布尔型盲注
  • 时间型盲注
  • UNION查询注入
  • 错误型注入

2. SQL错误关键词检测

程序检测以下SQL错误关键词:

1
2
3
4
5
6
7
"syntax error",
"you have an error in your sql syntax",
"warning",
"mysql_fetch",
"mysql_num_rows",
"unclosed quotation mark",
// ... 共29个错误关键词

3. 网络请求处理

使用libcurl库发送HTTP请求,支持:

  • Cookie处理
  • HTTP头定制
  • 超时设置
  • SSL验证绕过
  • 重定向跟踪

4. 响应分析

  • HTTP状态码检查
  • 响应长度比较
  • SQL错误关键词搜索
  • 重定向检测

注入技术特点

  1. 多种编码方式: 使用URL编码绕过过滤
  2. 注释技巧: 使用 /**/ 注释绕过空格过滤
  3. 布尔逻辑: 使用 OR 1=1AND 1=1 等逻辑测试
  4. 时间延迟: 使用 SLEEP(2) 进行时间型盲注检测
  5. UNION查询: 测试UNION注入可能性

检测方法

程序采用双重检测机制:

  1. 长度比较: 比较正常响应和注入响应的长度差异
  2. 错误关键词: 在响应中搜索SQL错误信息

使用方式

1
./exploit -u http://target-url -c cookies-file -v

安全建议

  1. 对用户输入进行严格的参数化查询
  2. 实施输入验证和过滤
  3. 使用预编译语句
  4. 最小化数据库权限
  5. 定期进行安全审计

该漏洞利用代码展示了SQL注入攻击的完整流程,从载荷生成到结果分析,为安全研究人员提供了详细的技术参考。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计