[ 
https://issues.apache.org/jira/browse/LANG-572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12793072#action_12793072
 ] 

Keisuke Kato commented on LANG-572:
-----------------------------------

I see. No surprise there. Thank you for the advice. For your reference, I 
attached OWASP 
[ESAPI|http://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API].

I'm still not quite convinced about c > 0x7F 
([UTF-8|http://ja.wikipedia.org/wiki/Unicode%E4%B8%80%E8%A6%A7_0000-0FFF]).

{code:title=Apache Commons Lang (2.4) Entities.java|borderStyle=solid}
//public void escape(Writer writer, String str)
if (entityName == null) {
    if (c > 0x7F) {
        writer.write("&#");
        writer.write(Integer.toString(c, 10));
        writer.write(';');
    } else {
        writer.write(c);
    }
} else {
    writer.write('&');
    writer.write(entityName);
    writer.write(';');
}
{code} 

{code:title=ESAPI (1.4) DefaultEncoder.java|borderStyle=solid}
//public String encodeForHTML(String input)
if ( c == '\t' || c == '\n' || c == '\r' ) {
    sb.append( c );
} else if ( c <= 0x1f || ( c >= 0x7f && c <= 0x9f ) ) {
    logger.warning( Logger.SECURITY, false, "Attempt to HTML entity encode 
illegal character: " + (int)c + " (skipping)" );
    sb.append( ' ' );
} else {
    sb.append( encode( c, htmlCodec, CHAR_ALPHANUMERICS, IMMUNE_HTML ) );
}
{code}


> [XSS] StringEscapeUtils.escapeHtml() must escape ' chars to &#39; 
> ------------------------------------------------------------------
>
>                 Key: LANG-572
>                 URL: https://issues.apache.org/jira/browse/LANG-572
>             Project: Commons Lang
>          Issue Type: Improvement
>          Components: lang.*
>    Affects Versions: 2.4
>         Environment: Operating System: All
> Platform: All 
>            Reporter: Keisuke Kato
>            Priority: Minor
>
> If developers putting untrusted data into attribute values using the single 
> quote character ' and StringEscapeUtils.escapeHtml() like:
> <input type='text' name='input' 
> value=*'<%=StringEscapeUtils.escapeHtml(request.getParameter("input"))%>'*>
> Then, the attacker is able to break out of the HTML attribute context like:
> hxxp://example.org/?input=*' onfocus='alert(document.cookie);' id='*
> <input type='text' name='input' 
> value='*'onfocus='alert(document.cookie);'id='*'>
> I think [LANG\-122|https://issues.apache.org/jira/browse/LANG-122] is not 
> truly fixed from this aspect (XSS).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to