Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
2.0.11
-
None
-
tomcat 6.0.14, jdk 1.6.0_03
Description
The <s:url> tag does not encode the URL parameters when specified in the "action" attribute. This can lead to a possible XSS attack or invalid URLs.
Moreover, <s:a> does not encode the value in "href" attribute, that can create invalid HTML code and XSS attacks.
This is the original description from Fabio Gandola.
-------------
I download the struts2-blank-2.0.11 application.
I place it in the webapps directory of Tomcat and I execute it. It works.
I place in example, the file XSS.jsp written this way:
______
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<s:url id="xssTest" action="test" namespace="/test" encode="true" />
<s:a href="%
</body>
</html>
______
I'm setting encode="true". But if I load on Internet Explorer 6:
http://localhost:8080/struts2-blank-2.0.11/example/XSS.jsp?>'"><script>alert('Hello World')</script>
The javascript is executed.. and this can be used for XSS stuff.
I looked into the class:
org.apache.struts2.components.URL
Revision 595746
And I don't understand where the encode properties is used.
Is this the right behaviour of encode attribute?
EDIT: After doing some more tests, I noticed that I do:
_____
<s:url id="xssTest" action="test" namespace="/test" encode="true">
<s:param name="myvar" value="%{'< > &'}" />
</s:url>
<s:a href="%{xssTest}
">XSS Test</s:a>
_____
The characters < > & are encoded, and so.. this is ok.
The funny thing is that it happens too if I set encode="false"
However I think that the fact the passed query string is not encoded.. (or at least I have not found a way) can give security problems? or this should be checked by the programmer?
Thank you.
Attachments
Issue Links
- depends upon
-
WW-2427 s:a does not HTML-escape "href" attribute value
- Closed