Lucene search

K
vulnerlabVulnerability Laboratory - ([email protected]) [www.vulnerability-lab.com]VULNERLAB:2043
HistoryJan 16, 2018 - 12:00 a.m.

Zenario v7.6 CMS - SQL Injection Web Vulnerability

2018-01-1600:00:00
Vulnerability Laboratory - ([email protected]) [www.vulnerability-lab.com]
www.vulnerability-lab.com
66

0.001 Low

EPSS

Percentile

37.2%

Document Title:
===============
Zenario v7.6 CMS - SQL Injection Web Vulnerability


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

http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2018-5960

CVE-ID:
=======
CVE-2018-5960


Release Date:
=============
2018-01-16


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


Common Vulnerability Scoring System:
====================================
5.9


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


Current Estimated Price:
========================
1.000€ - 2.000€


Product & Service Introduction:
===============================
Zenario is a web-based content management system for sites with one or many languages. It's designed to grow with 
your site, adding extranet, online database and custom functionality when you need it. Zenario 7.2 has a new feature 
to add CSS styles and media queries, thereby allowing you to make mobile-friendly "responsive" email newsletters.

(Copy of the Homepage: http://zenar.io/ )


Abstract Advisory Information:
==============================
The vulnerability laboratory core research team discovered a remote sql-injection vulnerability in the official Zenario v7.6 content management system.


Vulnerability Disclosure Timeline:
==================================
2017-05-03: Public Disclosure (Vulnerability Laboratory)


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


Affected Product(s):
====================
Zenario
Product: Zenario - Content Management System (Web-Application) 7.1

Zenario
Product: Zenario - Content Management System (Web-Application) 7.2

Zenario
Product: Zenario - Content Management System (Web-Application) 7.3

Zenario
Product: Zenario - Content Management System (Web-Application) 7.4

Zenario
Product: Zenario - Content Management System (Web-Application) 7.5

Zenario
Product: Zenario - Content Management System (Web-Application) 7.6


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


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


Technical Details & Description:
================================
A remote sql-injection web vulnerability has been discovered in the official Zenario v7.1 - v7.6 content management system web-application.
The sql-injection web vulnerability allows remote attackers with restricted account to execute own malicious sql commands to compromise 
the web-application and database management system.

The sql-injection vulnerability is location in the `Name` input field of the `Categories - Edit` module create POST method request.
Remote attackers with restricted privileged accounts are able to execute own malicious sql commands to compromise the application.
The attack vector of the vulnerability occurs on the client-side and the request method to inject is POST.

The security risk of the sql-injection vulnerability is estimated as high with a common vulnerability scoring system count of 7.0. 
Exploitation of the sql-injection web vulnerability requires a restricted site admin user account without user interaction. 
Successful exploitation of the sql-injection vulnerability results in web-application or database management system compromise.

Request Method(s):
[+] POST

Vulnerable Module(s):
[+] Categories - Edit

Vulnerable File(s):
[+] organizer.php
[+] admin_boxes.ajax.php

Vulnerable Parameter(s):
[+] Name (current_value)


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

Vulnerable Module: Categories > Edit > Name - Current_Value (Input Field)

--- PoC Session Logs [GET] ---
Status: 200[OK]
POST http://zenario.localhost:8080/zenario/admin/admin_boxes.ajax.php?path=zenario_categories&id=4
Mime Type[text/html]
   Request Header:
      Host[zenario.localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0]
      Content-Type[application/x-www-form-urlencoded; charset=UTF-8]
      X-Requested-With[XMLHttpRequest]
      Referer[http://zenario.localhost:8080/zenario/admin/organizer.php?]
      Content-Length[664]
      Cookie[__cfduid=; PHPSESSID=; COOKIE_LAST_ADMIN_USER=restricted_admin; cookies_accepted=1]
      Connection[keep-alive]
   POST-Daten:
      _save[true]
      _confirm[]
      _box[%7B%22key%22%3A%7B%22id%22%3A%224%22%2C%22parent_id%22%3A0%7D%2C%22tabs%22%3A%7B%22details%22%3A%7B%22edit_mode%22%3A%7B%22on%22%3A1%7D%2C%22fields%22%3A%7B%22name%22%3A%7B%22current_value%22%3A%22'[SQL-INJECTION VULNERABILITY!]%22%7D%2C%22public%22%3A%7B%22current_value%22%3Afalse%7D%2C%22landing_page%22%3A%7B%22_was_hidden_before%22%3Atrue%2C%22current_value%22%3A%22%22%7D%7D%7D%7D%2C%22_sync%22%3A%7B%22cache_dir%22%3A%22ab_RzlTYAf9_4KW7OQZI%22%2C%22password%22%3A%22ulZNWRvsZK50661bLyNWnaEux6JIjHDPtwn9gdRLF6U%3D%22%2C%22iv%22%3A%228ovqgY47Ej1ExIotzyCRzQ%3D%3D%22%2C%22session%22%3Afalse%7D%7D]
   Response Header:
      Server[Apache/2.4.23 (Ubuntu)]
      X-Frame-Options[SAMEORIGIN]
      Content-Length[1862]
      Connection[Keep-Alive]
      Content-Type[text/html; charset=UTF-8]


--- SQL Error Exception Logs ---
Database query error: 1406, column 'name' at row 1, UPDATE `zenario_categories` SET `name` = ', `public` = 0, `landing_page_equiv_id` = 0, `landing_page_content_type` = '' WHERE `id` = 4 Trace-back information: Array ( [0] => Array ( [file] => /var/www/zenario-source/Zenario-7.5/zenario/includes/database_connection.inc.php [line] => 1325 [function] => sqlUpdate [args] => Array ( [0] => UPDATE `zenario_categories` SET `name` = ', `public` = 0, `landing_page_equiv_id` = 0, `landing_page_content_type` = '' WHERE `id` = 4 [1] => [2] => ) ) [1] => Array ( [file] => /var/www/zenario-source/Zenario-7.5/zenario/modules/zenario_common_features/classes/admin_boxes/categories.php [line] => 53 [function] => setRow [args] => Array ( [0] => categories [1] => Array ( [name] => ' [public] => 0 [landing_page_equiv_id] => 0 [landing_page_content_type] => ) [2] => Array ( [id] => 4 ) ) ) [2] => Array ( [file] => /var/www/zenario-source/Zenario-7.5/zenario/modules/zenario_common_features/module_code.php [line] => 488 [function] => saveAdminBox [class] => zenario_common_features__admin_boxes__categories [object] => <<zenario_common_features__admin_boxes__categories>> [type] => -> [args] => Array ( [0] => zenario_categories [1] => [2] => Array ( [class_name] => zenario_common_features [key] => Array ( [id] => 4 [parent_id] => 0 ) [title] => Creating a category [title_for_existing_records] => Editing the category "[[details/name]]" [max_height] => 350 [hide_tab_bar] => 1 [tabs] => Array ( [details] => Array ( [class_name] => zenario_common_features [label] => Details [edit_mode] => Array ( [enabled] => 1 [always_on] => 1 [on] => 1 ) [fields] => Array ( [name] => Array ( [class_name] => zenario_common_features [label] => Name: [type] => text [side_note] => Internal name. [ord] => 1 [value] => asda [current_value] => ' ) [public] => Array ( [class_name] => zenario_common_features [label] => Public [type] => checkbox [side_note] => When a category is public, its name may be visible to visitors. The system will create a phrase with this name in all enabled languages; you can then edit that phrase in the visitor phrases system. [ord] => 2 [value] => 0 [current_value] => 0 ) [landing_page] => Array ( [class_name] => zenario_common_features [label] => Landing page: [pick_items] => Array ( [path] => zenario__content/panels/content/refiners/filter_by_lang//// [min_path] => zenario__content/panels/content [target_path] => zenario__content/panels/content [disallow_refiners_looping_on_min_path] => 1 [select_phrase] => Select a content item... ) [side_note] => Choose a landing page for this category. This will usually be a content item with a content list on it which lists items in this category. If a content list displays the content's category, that will become a link to this page. [hidden] => 1 [ord] => 3 [value] => [_was_hidden_before] => 1 [current_value] => ) ) [ord] => 1 [errors] => Array ( ) ) ) [_sync] => Array ( [cache_dir] => ab_-n7BM8vb_kekKNAY_ [password] => wJj8K4viGP94KYW9lkDsq/hYdAiJEsXWNinp8JABOgs= [iv] => UswLnOlv8pM5XbSn1YfZDw== [flags] => Array ( [valid] => 1 [confirm] => [download] => [saved] => ) ) ) [3] => Array ( [details/name] => Array ( [class_name] => zenario_common_features [label] => Name: [type] => text [side_note] => Internal name. [ord] => 1 [value] => asda [current_value] => ' ) [name] => Array ( [class_name] => zenario_common_features [label] => Name: [type] => text [side_note] => Internal name. [ord] => 1 [value] => asda [current_value] => ' ) [details/public] => Array ( [class_name] => zenario_common_features [label] => Public [type] => checkbox [side_note] => When a category is public, its name may be visible to visitors. The system will create a phrase with this name in all enabled languages; you can then edit that phrase in the visitor phrases system. [ord] => 2 [value] => 0 [current_value] => 0 ) [public] => Array ( [class_name] => zenario_common_features [label] => Public [type] => checkbox [side_note] => When a category is public, its name may be visible to visitors. The system will create a phrase with this name in all enabled languages; you can then edit that phrase in the visitor phrases system. [ord] => 2 [value] => 0 [current_value] => 0 ) [details/landing_page] => Array ( [class_name] => zenario_common_features [label] => Landing page: [pick_items] => Array ( [path] => zenario__content/panels/content/refiners/filter_by_lang//// [min_path] => zenario__content/panels/content [target_path] => zenario__content/panels/content [disallow_refiners_looping_on_min_path] => 1 [select_phrase] => Select a content item... ) [side_note] => Choose a landing page for this category. This will usually be a content item with a content list on it which lists items in this category. If a content list displays the content's category, that will become a link to this page. [hidden] => 1 [ord] => 3 [value] => [_was_hidden_before] => 1 [current_value] => ) [landing_page] => Array ( [class_name] => zenario_common_features [label] => Landing page: [pick_items] => Array ( [path] => zenario__content/panels/content/refiners/filter_by_lang//// [min_path] => zenario__content/panels/content [target_path] => zenario__content/panels/content [disallow_refiners_looping_on_min_path] => 1 [select_phrase] => Select a content item... ) [side_note] => Choose a landing page for this category. This will usually be a content item with a content list on it which lists items in this category. If a content list displays the content's category, that will become a link to this page. [hidden] => 1 [ord] => 3 [value] => [_was_hidden_before] => 1 [current_value] => ) ) [4] => Array ( [details/name] => ' [name] => ' [details/public] => 0 [public] => 0 [details/landing_page] => [landing_page] => ) [5] => Array ( [details/name] => [name] => [details/public] => [public] => [details/landing_page] => [landing_page] => ) ) ) [3] => Array ( [file] => /var/www/zenario-source/Zenario-7.5/zenario/admin/admin_boxes.ajax.php [line] => 293 [function] => saveAdminBox [class] => zenario_common_features [object] => <<zenario_common_features>> [type] => -> [args] => Array ( [0] => zenario_categories [1] => [2] => Array ( [class_name] => zenario_common_features [key] => Array ( [id] => 4 [parent_id] => 0 ) [title] => Creating a category [title_for_existing_records] => Editing the category "[[details/name]]" [max_height] => 350 [hide_tab_bar] => 1 [tabs] => Array ( [details] => Array ( [class_name] => zenario_common_features [label] => Details [edit_mode] => Array ( [enabled] => 1 [always_on] => 1 [on] => 1 ) [fields] => Array ( [name] => Array ( [class_name] => zenario_common_features [label] => Name: [type] => text [side_note] => Internal name. [ord] => 1 [value] => asda [current_value] => ' ) [public] => Array ( [class_name] => zenario_common_features [label] => Public [type] => checkbox [side_note] => When a category is public, its name may be visible to visitors. The system will create a phrase with this name in all enabled languages; you can then edit that phrase in the visitor phrases system. [ord] => 2 [value] => 0 [current_value] => 0 ) [landing_page] => Array ( [class_name] => zenario_common_features [label] => Landing page: [pick_items] => Array ( [path] => zenario__content/panels/content/refiners/filter_by_lang//// [min_path] => zenario__content/panels/content [target_path] => zenario__content/panels/content [disallow_refiners_looping_on_min_path] => 1 [select_phrase] => Select a content item... ) [side_note] => Choose a landing page for this category. This will usually be a content item with a content list on it which lists items in this category. If a content list displays the content's category, that will become a link to this page. [hidden] => 1 [ord] => 3 [value] => [_was_hidden_before] => 1 [current_value] => ) ) [ord] => 1 [errors] => Array ( ) ) ) [_sync] => Array ( [cache_dir] => ab_-n7BM8vb_kekKNAY_ [password] => wJj8K4viGP94KYW9lkDsq/hYdAiJEsXWNinp8JABOgs= [iv] => UswLnOlv8pM5XbSn1YfZDw== [flags] => Array ( [valid] => 1 [confirm] => [download] => [saved] => ) ) ) [3] => Array ( [details/name] => Array ( [class_name] => zenario_common_features [label] => Name: [type] => text [side_note] => Internal name. [ord] => 1 [value] => asda [current_value] => ' ) [name] => Array ( [class_name] => zenario_common_features [label] => Name: [type] => text [side_note] => Internal name. [ord] => 1 [value] => asda [current_value] => ') [details/public] => Array ( [class_name] => zenario_common_features [label] => Public [type] => checkbox [side_note] => When a category is public, its name may be visible to visitors. The system will create a phrase with this name in all enabled languages; you can then edit that phrase in the visitor phrases system. [ord] => 2 [value] => 0 [current_value] => 0 ) [public] => Array ( [class_name] => zenario_common_features [label] => Public [type] => checkbox [side_note] => When a category is public, its name may be visible to visitors. The system will create a phrase with this name in all enabled languages; you can then edit that phrase in the visitor phrases system. [ord] => 2 [value] => 0 [current_value] => 0 ) [details/landing_page] => Array ( [class_name] => zenario_common_features [label] => Landing page: [pick_items] => Array ( [path] => zenario__content/panels/content/refiners/filter_by_lang//// [min_path] => zenario__content/panels/content [target_path] => zenario__content/panels/content [disallow_refiners_looping_on_min_path] => 1 [select_phrase] => Select a content item... ) [side_note] => Choose a landing page for this category. This will usually be a content item with a content list on it which lists items in this category. If a content list displays the content's category, that will become a link to this page. [hidden] => 1 [ord] => 3 [value] => [_was_hidden_before] => 1 [current_value] => ) [landing_page] => Array ( [class_name] => zenario_common_features [label] => Landing page: [pick_items] => Array ( [path] => zenario__content/panels/content/refiners/filter_by_lang//// [min_path] => zenario__content/panels/content [target_path] => zenario__content/panels/content [disallow_refiners_looping_on_min_path] => 1 [select_phrase] => Select a content item... ) [side_note] => Choose a landing page for this category. This will usually be a content item with a content list on it which lists items in this category. If a content list displays the content's category, that will become a link to this page. [hidden] => 1 [ord] => 3 [value] => [_was_hidden_before] => 1 [current_value] => ) ) [4] => Array ( [details/name] => ' [name] => ' [details/public] => 0 [public] => 0 [details/landing_page] => [landing_page] => ) [5] => Array ( [details/name] => [name] => [details/public] => [public] => [details/landing_page] => [landing_page] => ) ) ) )


Reference(s):
http://zenario.localhost:8080/
http://zenario.localhost:8080/zenario/
http://zenario.localhost:8080/zenario/admin/
http://zenario.localhost:8080/zenario/admin/admin_boxes.ajax.php


Solution - Fix & Patch:
=======================
1. Escape the content and the parameter of the current_value
2. Disallow the usage of special chars
3. Restrict the size of the input to prevent further exploitation


Security Risk:
==============
The security risk of the remote sql-injection web vulnerability in the web-application is estimated as medium 
because of the site_admin account access is required. (CVSS 5.9)


Credits & Authors:
==================
Vulnerability Laboratory - ([email protected]) [www.vulnerability-lab.com]


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 © 2017 | Vulnerability Laboratory - [Evolution Security GmbH]™



0.001 Low

EPSS

Percentile

37.2%