By- Samrat Das
Recently in one of my pentest research, I found a CMS " WonderCMS" hosted in github.
Curious to explore its functionalities, I downloaded and set it up in my local system.
After fiddling with the source code, I found that it did not have any kind of security mechanism to filter any user input and accepted and stored in blindly without any sort of input validation
Title of the Vulnerability: Stored XSS
Common Vulnerability Scoring System: 7.0
Vulnerability Class: Injection
Technical Details & Description: The application source code is coded in a way which allows user input values to be stored and processed by the application.
CVE ID allocated: CVE-2017-14522
Product & Service Introduction: Wonder CMS 2.3.1
WonderCMS is an open source CMS (Content Management System) built with PHP, jQuery, HTML and CSS (Bootstrap responsive).
WonderCMS doesn't require any configuration and can be simply unzipped and uploaded to your server/hosting provider. All data is saved to a text file (JSON format) which is easily copied, moved, backed up and restored. WonderCMS runs on less than 50 functions and 850 lines of code and 5 files.
Steps to Re-Produce –
1. Visit the application
2. Pass any XSS payload into the application user input fields.
3. The XSS immediately pops up in next screen
4. Now every time the page is visited, the XSS gets triggered and thus becomes stored XSS
Exploitation Technique: A attacker can perform session hijacking/ remote port scans as well as deface the site via XSS
Severity Level: High
The presence of such a risk can lead to user data compromise as well as site defacing.
Affected Product Version: 2.3.1
Step by step for the attack: