exploit the possibilities
Home Files News &[SERVICES_TAB]About Contact Add New

Security Evaluation Of NanoCMS

Security Evaluation Of NanoCMS
Posted Apr 14, 2009
Authored by Justin C. Klein Keane

This is a security evaluation of NanoCMS version 0.4_final. It suffers from credential leakage, cross site scripting, and various other vulnerabilities.

tags | exploit, vulnerability, xss
SHA-256 | 71c662dc089b12b7192e5d6e256cd945429a5a59a1d24933fb69e6fb99e8d2cc

Security Evaluation Of NanoCMS

Change Mirror Download
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Security Evaluation of NanoCMS

April 14, 2009
Version tested: 0.4_final
by Justin C. Klein Keane <justin@madirish.net>

The text of this report is also available at
http://www.madirish.net/vulnerabilities/nanocms

NanoCMS (http://nanocms.in) is a PHP based Content Management System
(CMS). "Nano CMS is the tiniest CMS you can find around. The user
interface and the functionality are very very simple and extremely easy
to use. The core feature of NanoCMS is that it is filebased and does
not use any database at all, which makes it super easy to install - just
extract and that's it." A brief security evaluation of NanoCMS version
0.4 final revealed a number of notable security vulnerabilities that
could allow remote attackers to take complete control of the web server
process serving NanoCMS.

* NanoCMS utilizes default administrative credentials (admin/demo) which
can be used to access the administrative portion of the site at
/data/nanoadmin.php.

* In a default installation the URL to the administrative portion of the
CMS is displayed at /index.php?page=how-to-install along with the
default username and password to access the administrative back end.

* NanoCMS installation suggest full read/write permissions (user, group,
and other (0777)) for the /data/pages and /data/areas directories as
well as the data/pagesdata.txt files. This is especially dangerous as
the data/pagesdata.txt contains configuration information including
administrative username and password hash.

* Semicolon separated, serialized settings variables are stored in a
plain text file accessible via the web interface at /data/pagesdata.txt.
These variables include:

s:8:"username";s:5:"admin";
s:8:"password";s:32:"fe01ce2a7fbac8fafaed7c982a04e229";

This allows for administrative account enumeration. Although the
password value is stored as an MD5 hash, its availability allows for as
offline hash cracking.

* Version enumeration is possible by viewing the plain text
configuration page at /data/pagesdata.txt. The serialized variable
"version" displays this information in the form:

s:7:"version";s:4:"v_4f";

* Page title field when creating or editing content is vulnerable to
arbitrary script injection (cross site scripting). For instance, if a
new page is created with the title "<script>alert('title');</script>" a
JavaScript alert is displayed on every page the content title is listed.
This arbitrary script is displayed in multiple areas of the
administrative back end (editing or listing content) exposing site
administrators to XSS attacks, as well as via the front end, exposing
all site users.

* The website name, website slogan, below navigation and copyright
notice areas controlled in the NanoCMS admin panel on the "Content
Areas" page (data/nanoadmin.php?action=showareas) are all vulnerable to
arbitrary HTML, JavaScript and PHP code injection. Each of these areas
are rendered as flat files with PHP extensions (for instance in
data/areas/website name.php) causing the web server to parse any PHP
code contained on these pages when the NanoCMS powered web site is
displayed. For instance, if the "website name" value is changed from
the default "NanoCMS v0.4" to "NanoCMS v0.4 <?php echo phpinfo();?>" the
site's PHP configuration information will be displayed on the site.

* No protection is provided in administrative forms to prevent against
Cross Site Request Forgery (CSRF) attacks. If a logged in administrator
was to visit a page that contained a hidden form post to the settings
URL (data/nanoadmin.php?action=settings) that contained the POST
variables "save", "username" and "password" the administrative username
and password would be silently updated as the admin user is not required
to provide the existing password and no tokens are present to prevent
the attack.

* Administrative access is controled via the PHP session variable
NANO_CMS_ADMIN_LOGGED. NanoCMS passes session information via
plain-text cookies set to expire at the end of the session. Cookie
theft could grant full administrative control to unauthorized remote
attackers.

* Any content created in NanoCMS may contain arbitrary PHP code. This
could enable anyone with the ability to create content to run arbitrary
commands with the privileges of the web server. For instance, creating
a new page that contained the content '<?php system("cat
/etc/passwd");?>' would create a new page that contained as it's body
the listings of the system password file.

The combination of these vulnerabilities could allow a remote attacker
to enumerate the administrative username, crack the associated password,
log into the administrative back end of the NanoCMS, and create a PHP
interface to take control of the web server process. This would include
the ability to read and write files on the system.

- --
Justin C. Klein Keane
http://www.MadIrish.net
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iQD1AwUBSeOoXJEpbGy7DdYAAQLpJgcAsRYrIbzocv8JgJyKonkEvJiV7U6X6WVT
yA47EvPaI8NPK69/Y6iIQ4LfxuH68DJLflNBc8Kl3GhIt8apNoaVZBt5JPJSaUCO
xohoM6Q1j7hSGegU2TD7kumNbJbf9YSsIm6qYNpKAaxiu+KpAibUMgXVmezYAbAZ
+Ek0ZRlXoI/7NKOnr1cAD7ykg7p3uc6aneIfQI4sATU8GfEOYrMVTwU0hNk60Hvg
MhUPKIheIBWKghdDs8045fSqbauNx3DyseytmSLQonn1VClVVSO6O447hso8iIYY
TqyE/DMrBWA=
=umZW
-----END PGP SIGNATURE-----

Login or Register to add favorites

File Archive:

April 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    10 Files
  • 2
    Apr 2nd
    26 Files
  • 3
    Apr 3rd
    40 Files
  • 4
    Apr 4th
    6 Files
  • 5
    Apr 5th
    26 Files
  • 6
    Apr 6th
    0 Files
  • 7
    Apr 7th
    0 Files
  • 8
    Apr 8th
    22 Files
  • 9
    Apr 9th
    14 Files
  • 10
    Apr 10th
    10 Files
  • 11
    Apr 11th
    13 Files
  • 12
    Apr 12th
    14 Files
  • 13
    Apr 13th
    0 Files
  • 14
    Apr 14th
    0 Files
  • 15
    Apr 15th
    30 Files
  • 16
    Apr 16th
    10 Files
  • 17
    Apr 17th
    22 Files
  • 18
    Apr 18th
    45 Files
  • 19
    Apr 19th
    0 Files
  • 20
    Apr 20th
    0 Files
  • 21
    Apr 21st
    0 Files
  • 22
    Apr 22nd
    0 Files
  • 23
    Apr 23rd
    0 Files
  • 24
    Apr 24th
    0 Files
  • 25
    Apr 25th
    0 Files
  • 26
    Apr 26th
    0 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    0 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close