Issue: Stored Cross site Scripting (XSS) on Discuss Module v1.2.1 in Claromentis intranet application Reserved CVE: CVE-2018-15903 # Vulnerability OverviewThe Discuss v1.2.1 module in Claromentis 8.2.2 is vulnerable to Stored Cross Site Scripting (XSS). An authenticated attacker is able to place malicious JavaScript in the discussion forum, which is present in the login landing page. A low privilege user can use this to steal the session cookies from high privilege accounts to conduct session hijacking, enabling them to hijack the elevated session and perform actions in their security context. # Discovered By David Vargas @ HackLabs # Vendor Status Disclosed to the Claromentis security team. Discuss module was patched within two weeks of disclosure. # Vulnerability Details Attack type: Remote, authenticated Impact: Information disclosure, session hijacking, possible domain hash disclosure. Affected component: Tested on Claromentis Discuss Module v1.2.1. Presumably all previous versions also affected. Claromentis version affected: Tested on 8.2.2. Attack vector: XSS # Technical Overview Claromentis provides Intranet software hosted for organisations. Many different modules can be enabled to provide different functionality within the application. One of these Modules is the Discuss module, which allows forum style discussions between authenticated users. The Discuss module was found to not enforce any sort of character filtering or encoding, and vulnerable to stored cross site scripting. Rather than strip or encode special characters, the Discuss module simply takes the HTML input and echoes it out in the post, allowing us to inject simple payloads such as . The risk is amplified because the application also fails to set the httponly flag on the session cookie (PHPSESSID), which facilitates session hijacking attacks. Furthermore, the Discuss module is present on the landing page for successful logins, which means every user that authenticates to the application or navigates to the home page would be a potential victim to session hijacking or potentially Net-NTLM hash stealing. # POC 1: Session Hijacking To demonstrate the ability to steal session cookies, the following payload can be used: ``` ``` The above is the classic PoC which will produce an pop up box with the document cookies, including the PHPSESSID session cookie. In practice, this payload would be little value to an attacker. A malicious actor would use something like the payload below to send the cookies to a server they control: ``` ``` This would send the current session cookies to the attacker's domain, allowing them to hijack different sessions and execute actions in the application within the victim's security context. # POC 2: Collecting domain credentials Claromentis allows and supports the use of Active directory for authentication, which means the vulnerability could be easily leveraged to redirect to a fake authentication page in order to trick the victim into divulging domain credentials. Alternatively, if the perimeter firewalls allow outbound traffic to TCP 445, or if the attacker is in the network, the following payload can also be used to silently steal Net-NTLM Hashes from the target: ``` ``` Where x.x.x.x is the IP address of an evil SMB server. Internet explorer and other browsers support UNC paths, which will cause the above payload to try to authenticate to the evil SMB server in order to access the *doesnotexist* share, resulting in the disclosure of user hashes which could be then be cracked.