# Exploit Author: William Summerhill
# Date: 2020-06-22
# Vendor Homepage:bhttps://www.globalradar.com/
# Version: BSA Radar - Version 1.6.7234.24750 and lower
# CVE: CVE-2020-14944
# Description: The Global RADAR BSA Radar 1.6.7234.X application
lacks valid authorization
# controls in multiple functions while logged into the
application.
# This can allow for manipulation and takeover of user accounts if
successfully exploited.
# The following vulnerable functions are exposed: ChangePassword, SaveUserProfile, GetUser
Proof of Concept:
1. ChangePassword API endpoint - Allows the ability to update
the password belonging to another account by their UserID, and
therefore leading to account takeover.
HTTP Request PoC:
POST /WS/AjaxWS.asmx/ChangePassword
{"password":
{"UserID":XXXX,"NewPassword":"NEWPASSHERE","NewPasswordConfirm":"NEWPASSHERE",<REMAINDER
OF REQUEST HERE>} }
The UserID and NewPassword parameters can be forged to force the password change of another existing user account by using their UserID.
2. SaveUserProfile API endpoint - Allows the ability to update
the user profile belonging to another account by using their
UserID. This includes modifiable details like first name, last
name, email, and phone number. This also allows for injection of a
Stored Cross-Site Scripting (XSS) into arbitrary user account
profiles as the first name and last name parameters are vulnerable.
This can allow for session hijacking, stealing application data or
redirecting users to attacker-controlled applications for phishing
attacks.
HTTP Request PoC:
POST /WS/AjaxWS.asmx/SaveUserProfile
{"user":
{"UserID":XXXX,"BankID":XXX,"Firstname":<ARBITRARY INPUT HERE OR
STORED XSS SCRIPT>","Lastname":"<ARBITRARY INPUT HERE OR
STORED XSS SCRIPT>","Title":"","Phone":"<ARBITRARY INPUT
HERE>","Email":"<Correct email here>",<REMAINDER OF
REQUEST HERE>} }
Multiple paramaters above can be forged and modified for existing UserID accounts. The Firstname and Lastname parameters are vulnerable to a stored XSS attack which can be used to inject malicious scripts into existing user accounts to steal sessions or account data, or to redirect users to malicious pages.
3. GetUser API endpoint - Allows the ability to view the user
account details of any arbitrary user by enumerating their
UserID.
HTTP Request PoC:
POST /WS/AjaxWS.asmx/GetUser
{"userID":XXXX }
The UserID paramter can be forged to enumerate over existing userID's in order to return their account details such as full name, username, user permissions, account role, email, and password question.
Tested on: Windows
CVE: CVE-2020-14944
Reference:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14944

