Security Vulnerability Report
Researcher: Abdurazzoqov Javohir
Date: 2026-06-19
Severity: Critical (CVSS 9.8)
CWE: CWE-89 (SQL Injection), CWE-256 (Plaintext Password Storage)
Vulnerability 1 — SQL Injection in login.php (Critical)
File: login.php
$email = mysqli_real_escape_string($con, $_POST["email"]);
$password = $_POST["password"]; // NOT escaped!
$sql = "SELECT * FROM user_info WHERE email = '$email' AND password = '$password'";
$password is inserted directly into SQL with no sanitization.
PoC — Auth Bypass:
POST /login.php
email=x&password=x' OR '1'='1'-- -
Impact: Login bypass — access any user account.
Vulnerability 2 — SQL Injection in admin/admin/edituser.php (Critical)
$user_id = $_REQUEST['user_id'];
$first_name = $_POST['first_name'];
$user_password = $_POST['password'];
mysqli_query($con, "update user_info set first_name='$first_name', ..., password='$user_password' where user_id='$user_id'");
5 unsanitized parameters in UPDATE query.
Vulnerability 3 — SQL Injection in admin/admin/addsuppliers.php (Critical)
All POST fields directly inserted into INSERT query without sanitization.
Vulnerability 4 — Plaintext Password Storage (High)
Passwords stored and compared in plaintext across all login flows.
Fix
Use prepared statements:
$stmt = $con->prepare("SELECT * FROM user_info WHERE email = ? AND password = ?");
$stmt->bind_param("ss", $email, password_hash($password, PASSWORD_BCRYPT));
$stmt->execute();
Researcher: Abdurazzoqov Javohir
Contact: abdurazzoqovjavohir700@gmail.com
Related report on advanced version: PuneethReddyHC/online-shopping-system-advanced#83
Security Vulnerability Report
Researcher: Abdurazzoqov Javohir
Date: 2026-06-19
Severity: Critical (CVSS 9.8)
CWE: CWE-89 (SQL Injection), CWE-256 (Plaintext Password Storage)
Vulnerability 1 — SQL Injection in login.php (Critical)
File:
login.php$passwordis inserted directly into SQL with no sanitization.PoC — Auth Bypass:
Impact: Login bypass — access any user account.
Vulnerability 2 — SQL Injection in admin/admin/edituser.php (Critical)
5 unsanitized parameters in UPDATE query.
Vulnerability 3 — SQL Injection in admin/admin/addsuppliers.php (Critical)
All POST fields directly inserted into INSERT query without sanitization.
Vulnerability 4 — Plaintext Password Storage (High)
Passwords stored and compared in plaintext across all login flows.
Fix
Use prepared statements:
Researcher: Abdurazzoqov Javohir
Contact: abdurazzoqovjavohir700@gmail.com
Related report on advanced version: PuneethReddyHC/online-shopping-system-advanced#83