-
-
Notifications
You must be signed in to change notification settings - Fork 405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Path-Based Cross-Site Scripting (XSS) #1010
Comments
@andermat8 this bug contains no information to act upon. You describe what an XSS is, most people here know that, as cacti has fixed XSS bugs before. So, please describe the vulnerabilities themselves, and how to exploit them, such that they can be fixed. |
I have several of them so let me provide you one and let me know if this information is sufficient: URL: http://cactiw02.web.com/cacti/graph_view.php?"%26gt;%26lt;script%26gt;_q_q=')('%26lt;/script%26gt; Finding # Confirmed Vulnerability - Level 5 Group Cross-Site Scripting First Time Detected 27 Sep 2017 13:23 GMT CWE Last Time Detected 27 Sep 2017 13:23 GMT OWASP Last Time Tested 27 Sep 2017 13:23 GMT WASC Times Detected 1 CVSS Base 4.3 CVSS Temporal 4.3 Details Threat XSS vulnerabilities occur when the Web application echoes user-supplied data in an HTML response sent to the Web browser. For example, a Web application might include the user's name as part of a welcome message or display a home address when confirming a shipping destination. If the user-supplied data contain characters that are interpreted as part of an HTML element instead of literal text, then an attacker can modify the HTML that is received by the victim's Web browser. In this case, the scanner identified the vulnerability by injecting a payload as part of the path component of the URL, as opposed to other kinds of XSS attacks that inject the payload into URL parameter values. Impact XSS exploits pose a significant threat to a Web application, its users and user data. XSS exploits target the users of a Web application rather than the Web application itself. An exploit can lead to theft of the user's credentials and personal or financial information. Complex exploits and attack scenarios are possible via XSS because it enables an attacker to execute dynamic code. Consequently, any capability or feature available to the Web browser (for example HTML, JavaScript, Flash and Java applets) can be used to as a part of a compromise. Solution Filter all data collected from the client including user-supplied content and browser content such as Referrer and User-Agent headers. Detection Information Parameter No param has been required for detecting the information. Authentication In order to detect this vulnerability, the scan required authentication to be enabled. Payloads #1 Request Payload @Append@?"><script>_q_q=')('</script> Request GET http://cactiw02.web.com/cacti/graph_view.php?"><script>_q_q=')('</script> #1 Referer: http://cactiw02.web.com/cacti/ #1 Response $('.loginRight').css('width',parseInt($(window).width()*0.33)+'px'); var refreshMSeconds=300000; |
Hi, This is much more useful, although I miss the exact exploit. What should happen in your example? I have 1.1.25, I don't notice anything happening, and indeed I get a slightly different response. What I see is that everything except ')( is escaped. Do this mean the issue is fixed between 1.1.23 and 1.1.25, or is there something more subtle going on.
|
It would be great if an upgrade can correct this. Let me provide you with some more: 150117 Path-Based Cross-Site Scripting (XSS) Finding # Confirmed Vulnerability - Level 5 Group Cross-Site Scripting First Time Detected 27 Sep 2017 13:23 GMT CWE Last Time Detected 27 Sep 2017 13:23 GMT OWASP Last Time Tested 27 Sep 2017 13:23 GMT WASC Times Detected 1 CVSS Base 4.3 CVSS Temporal 4.3 Details Threat XSS vulnerabilities occur when the Web application echoes user-supplied data in an HTML response sent to the Web browser. For example, a Web application might include the user's name as part of a welcome message or display a home address when confirming a shipping destination. If the user-supplied data contain characters that are interpreted as part of an HTML element instead of literal text, then an attacker can modify the HTML that is received by the victim's Web browser. In this case, the scanner identified the vulnerability by injecting a payload as part of the path component of the URL, as opposed to other kinds of XSS attacks that inject the payload into URL parameter values. Impact XSS exploits pose a significant threat to a Web application, its users and user data. XSS exploits target the users of a Web application rather than the Web application itself. An exploit can lead to theft of the user's credentials and personal or financial information. Complex exploits and attack scenarios are possible via XSS because it enables an attacker to execute dynamic code. Consequently, any capability or feature available to the Web browser (for example HTML, JavaScript, Flash and Java applets) can be used to as a part of a compromise. Solution Filter all data collected from the client including user-supplied content and browser content such as Referrer and User-Agent headers. Detection Information Parameter No param has been required for detecting the information. Authentication In order to detect this vulnerability, the scan required authentication to be enabled. Payloads #1 Request Payload @Append@?"><script>_q_q=')('</script> Request GET http://cactiw02.web.com/cacti/gprint_presets.php?"><script>_q_q=')('</script> #1 Referer: http://cactiw02.web.com/cacti/ Click this ">link to try to reproduce the vulnerability using above payload.Note that clicking this link may not lead to visible results, either because the vulnerability requires context to be previously set (authentication, cookies...) or because the exploitation of the vulnerability does not lead to any visible proof. #1 Response sion='1.1.23'; |
Auto log page refresh broken. Reworking CVE fix from Issue #1010
I had to update this fix slightly for issue # 1028. First, for the $_SERVER['REQUEST_URI'], I'm using the Cacti builtin function html_escape(), and for the refresh page, I'm only escaping the $_SERVER[''] branch of the logic as this negatively impacted the refresh page feature controlled in plugins. |
Running version 1.1.23. Had a security scan performed on application and found 45 instances of XSS:
ThreatXSS vulnerabilities occur when the Web application echoes user-supplied data in an HTML response sent to the Web browser. For example, a Web application might include the user's name as part of a welcome message or display a home address when confirming a shipping destination. If the user-supplied data contain characters that are interpreted as part of an HTML element instead of literal text, then an attacker can modify the HTML that is received by the victim's Web browser. The XSS payload is echoed in HTML document returned by the request. An XSS payload may consist of HTML, JavaScript or other content that will be rendered by the browser. In order to exploit this vulnerability, a malicious user would need to trick a victim into visiting the URL with the XSS payload.In this case, the scanner identified the vulnerability by injecting a payload as part of the path component of the URL, as opposed to other kinds of XSS attacks that inject the payload into URL parameter values.
ImpactXSS exploits pose a significant threat to a Web application, its users and user data. XSS exploits target the users of a Web application rather than the Web application itself. An exploit can lead to theft of the user's credentials and personal or financial information. Complex exploits and attack scenarios are possible via XSS because it enables an attacker to execute dynamic code. Consequently, any capability or feature available to the Web browser (for example HTML, JavaScript, Flash and Java applets) can be used to as a part of a compromise.
SolutionFilter all data collected from the client including user-supplied content and browser content such as Referrer and User-Agent headers. Any data collected from the client and displayed in a Web page should be HTML-encoded to ensure the content is rendered as text instead of an HTML element or JavaScript.
The text was updated successfully, but these errors were encountered: