Title: ======= JGI CMS - Script Source Code Disclosure Introduction: ============== A content management system (CMS) is a computer application that supports the creation and modification of digital content. It is often used to support multiple users working in a collaborative environment. CMS features vary widely. Most CMSs include Web-based publishing, format management, history editing and version control, indexing, search, and retrieval. By their nature, content management systems support the separation of content and presentation. Vulnerability Disclosure: ========================== 2017-09-10: Public Disclosure Affected Product(s): ===================== JGI CMS 1.0 Exploitation Technique: ======================== Remote Severity Level: ================ High Technical Details & Description: ================================= A Source Code Disclosure vulnerability has been discovered in the JCI CMS web-application. The vulnerability is located in the 'arquivo' parameter of the`dl.php` action GET method request. Request Method(s): [+] GET Vulnerable Function(s): [+] dl.php Vulnerable Parameter(s): [+] arquivo Proof of Concept (PoC): ======================== It is possible to read the source code of this script by using script filename as a parameter. It seems that this script includes a file which name is determined using user-supplied data. This data is not properly validated before being passed to the include function. [+] http://www.abq.org.br/dl.php?arquivo=dl.php Solution ========= For starters, programmers should be trained to validate user input from browsers. Input validation ensures that attackers cannot use commands that leave the root directory or violate other access privileges. Beyond this, filters can be used to block certain user input. Enterprises typically employ filters to block URLs containing commands and escape codes that are commonly used by attackers. Additionally, web server software (and any software that is used) should be kept up-to-date with current patches. Regularly patching software is a critical practice for reducing security risk, as software patches typically contain security fixes. Credits ======== Felipe "Renzi" Gabriel Contact ======== renzi@linuxmail.org References ========== https://www.acunetix.com/vulnerabilities/web/script-source-code-disclosure https://www.veracode.com/security/directory-traversal https://en.wikipedia.org/wiki/Content_management_system