#####################################
Title: Cross-Site Request Forgery (CSRF) Vulnerability in MicroStrategy Web application allows modifying user's preferences.
Author: Wissam Bashour< #####################################
Title: Cross-Site Request Forgery (CSRF) Vulnerability in MicroStrategy Web application allows modifying user's preferences.
Author: Wissam Bashour
Vendor: MicroStrategy
Product: MicroStrategy Web
Version: All versions below 10.4.0026.0049
Tested Version: Version 10.4.0026.0049
Severity: HIGH
CVE Reference: CVE-2018-18696

# About the Product:
MicroStrategy provides software solutions and expert services that empower every individual with actionable intelligence, helping enterprises unleash the full potential of their people and investments.
Web is a browser-independent web interface providing query, reporting, and analysis functionality. Using this intuitive web solution, users can execute, access, analyze, and share reports and dashboards. Web also allows users to access MicroStrategy applications through a Microsoft Office interface. This product also includes Web SDK functionality, which allows organizations to customize their web interface. All Web licenses also include a complimentary license to the Desktop product

# Description:
The application is vulnerable to Cross-Site Request Forgery (CSRF). It is an attack that forces an end user to execute unwanted actions on a web application in which they're currently authenticated. CSRF attacks specifically target state-changing requests, not theft of data, since the
attacker has no way to see the response to the forged request.
An attacker may trick the users of the web application into executing actions of the attacker's choosing. If the victim is a normal user, a successful CSRF attack can force the user to perform state changing requests like transferring changing their email address, or any personal preferences.
An attacker could trick the users of the Microstrategy application into clicking on a link that will change the victim's personal information or perform unwanted action on the application.

# Vulnerability Class:
Cross-Site Request Forgery (CSRF) - https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)

# How to Reproduce: (POC):
Host the attached code in a webserver. Then send the link to the application user. The user should be logged in when he clicks on the link.
You can entice him to do that by using social engineering techniques.
i.e. Log into the application and click the following link to get free licenses

# Disclosure:
Discovered: October 9, 2018
Vendor Notification: October 9, 2018
Advisory Publication: December 2, 2018
Public Disclosure: December 2, 2018

# Solution:
Follow the instructions in the below article on how to append a dynamic token to each request.
https://community.microstrategy.com/s/article/KB37643-New-security-feature-introduced-in-MicroStrategy-Web-9-0


# credits:
Wissam Bashour
Senior Cyber Security Consultant

# Proof of Concept Code:
https://raw.githubusercontent.com/Siros96/MicroStrategy_CSRF/master/PoC

#References:
[1] https://community.microstrategy.com/
[2] https://www.microstrategy.com/
[3] https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)
[4] Common Vulnerabilities and Exposures (CVE) - http://cve.mitre.org/ - international in scope and free for public use, CVEA(r) is a dictionary of publicly known information security vulnerabilities and exposures.