Skip to content

[Security] SQL Injection in Login + Admin Edit/Add — Critical (CWE-89) #38

Description

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions