Family Connections <= 2.1.3 Multiple Remote Vulnerabilities

 Name              Family Connections
 Vendor            http://www.familycms.com
 Versions Affected <= 2.1.3

 Author            Salvatore Fresta aka Drosophila
 Website           http://www.salvatorefresta.net
 Contact           salvatorefresta [at] gmail [dot] com
 Date              2009-12-16

X. INDEX

 I.    ABOUT THE APPLICATION
 II.   DESCRIPTION
 III.  ANALYSIS
 IV.   SAMPLE CODE
 V.    FIX
 VI.   DISCLOSURE TIMELINE


I. ABOUT THE APPLICATION

Based on one of the world's leading structure  and content
management systems - WebSiteAdmin, WSCreator  (WS standing
for WebSite) is powerful application for handling multiple
websites. This is a commercial application.
Keep your family "Connected" with this content  management
system (CMS) designed specifically with family's  in mind.
Key  features  are:  a message  board,  a  photo  gallery,
a   blog-like   "Family News"   section,  a  calendar,  an
address book and recipe sharing section.
Each family  member has their own  personal settings, like
the ability to change the website's theme.
Now with Portuguese, Czech, English, Estonian, German, and
Spanish language Support....


II. DESCRIPTION

Many fields are not properly sanitised and some checks can
be bypassed.


III. ANALYSIS

Summary:

 A) Multiple Blind SQL Injection
 B) Multiple Arbitrary File Upload
 C) Local File Inclusion

A) Blind SQL Injection

All  field  that  I  tested  are  vulnerable  to Blind SQL
Injection.
I can't report all vulnerable files because they are many.
The most injections don't require  that  Magic Quotes GPC
(php.ini) is setted to Off.
However an attacker may try to exploit this vulnerability
using the full path disclosure released by the MySQL error
to  write a  file  into the  remote file system,  using as
destination  path  the  gallery  directories,  where   the
permissions must be setted to 777.


B) Multiple Arbitrary File Upload

When we want to write a module to upload a  file,  we must
check  the file  extension  without using the Content-Type
HTTP field,  because  this last  one can be  changed. This
CMS uses the Content-Type to validate the extension.


C) Local File Inclusion

In settings.php an user can set the favorite theme to use.
This theme is included using the include_once PHP function.
The  original  path  is  themes/  but using  the directory
traversal sequence, an user can include arbitrary files.
There  is a  limit of characters  to use, infact the theme
field into the database has a length limit equal to 25.


IV. SAMPLE CODE

A) Multiple Blind SQL Injection

http://site/path/profile.php?member=1 AND IF(ASCII((SELECT CHAR(90)))
= 90, BENCHMARK(10000000, MD5(0x90)), NULL)

http://site/path/messageboard.php?thread=1 AND 1=1
http://site/path/messageboard.php?thread=1 AND 1=0

B) Multiple Arbitrary File Upload

A PoC that upload a PHP shell can be downloaded here:
http://www.salvatorefresta.net/files/poc/PoC-FC213.c


C) Local File Inclusion

Edit  the POST  packet and  send the modified  theme value
like the following: ../ReadMe.txt\0


V. FIX

No Fix.


VIII. DISCLOSURE TIMELINE

2009-12-16 Bug discovered
2009-12-16 Initial vendor contact
2009-12-16 Advisory Release
