Advisory ID: HTB23081 Product: osCmax Vendor: osCMax.com Vulnerable Version(s): 2.5.0 and probably prior Tested Version: 2.5.0 Vendor Notification: 14 March 2012 Vendor Patch: 30 March 2012 Public Disclosure: 4 April 2012 Vulnerability Type: Cross-Site Scripting (XSS), SQL Injection CVE Reference(s): CVE-2012-1664, CVE-2012-1665 Solution Status: Fixed by Vendor Risk Level: High Credit: High-Tech Bridge SA Security Research Lab ( https://www.htbridge.com/advisory/ ) ----------------------------------------------------------------------------------------------- Advisory Details: High-Tech Bridge SA Security Research Lab has discovered multiple vulnerabilities in osCmax, which can be exploited to perform SQL Injection and Cross-Site Scripting (XSS) attacks. 1) Multiple Cross-Site Scripting (XSS) in osCmax: CVE-2012-1664 1.1 Input passed via the "username" POST parameter to /admin/login.php is not properly sanitised before being returned to the user. This can be exploited to execute arbitrary HTML and script code in user's browser session in context of affected website. The following PoC (Proof of Concept) demonstrates the vulnerability:
1.2 Input passed via the "pageTitle" GET parameter to /admin/new_attributes_include.php is not properly sanitised before being returned to the user. This can be exploited to execute arbitrary HTML and script code in user's browser session in context of affected website. The following PoC demonstrates the vulnerability: http://[host]/admin/new_attributes_include.php?pageTitle=%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E Successful exploitation of this vulnerability requires that "register_globals" is enabled. 1.3 Input passed via the "sb_id", "sb_key", "gc_id", "gc_key" and "path" POST parameters to /admin/htaccess.php is not properly sanitised before being returned to the user. This can be exploited to execute arbitrary HTML and script code in user's browser session in context of affected website. The following PoC demonstrates the vulnerability:
Successful exploitation of this vulnerability requires that "register_globals" is enabled. 1.4 Input passed via the "title" GET parameter to /admin/information_form.php is not properly sanitised before being returned to the user. This can be exploited to execute arbitrary HTML and script code in user's browser session in context of affected website. The following PoC (Proof of Concept) demonstrates the vulnerability: http://[host]/admin/information_form.php?title=%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E Successful exploitation of this vulnerability requires that "register_globals" is enabled. 1.5 Input passed via the "search" GET parameter to /admin/xsell.php is not properly sanitised before being returned to the user. This can be exploited to execute arbitrary HTML and script code in administrator's browser session in context of affected website. The following PoC demonstrates the vulnerability: http://[host]/admin/xsell.php?search=%27%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E 1.6 Input passed via the "gross" and "max" GET parameters to /admin/stats_products_purchased.php is not properly sanitised before being returned to the user. This can be exploited to execute arbitrary HTML and script code in administrator's browser session in context of affected website. The following PoC demonstrate the vulnerability: http://[host]/admin/stats_products_purchased.php?gross=%22%20%3E%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E http://[host]/admin/stats_products_purchased.php?max=%27%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E 1.7 Input passed via the "status" GET parameter to /admin/stats_monthly_sales.php is not properly sanitised before being returned to the user. This can be exploited to execute arbitrary HTML and script code in administrator's browser session in context of affected website. The following PoC demonstrates the vulnerability: http://[host]/admin/stats_monthly_sales.php?status=%27%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E 1.8 Input passed via the "sorted" GET parameter to /admin/stats_customers.php is not properly sanitised before being returned to the user. This can be exploited to execute arbitrary HTML and script code in administrator's browser session in context of affected website. The following PoC demonstrates the vulnerability: http://[host]/admin/stats_customers.php?sorted=%27%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E 1.9 Input passed via the "information_id" GET parameter to /admin/information_manager.php is not properly sanitised before being returned to the user. This can be exploited to execute arbitrary HTML and script code in administrator's browser session in context of affected website. The following PoC demonstrates the vulnerability: http://[host]/admin/information_manager.php?information_action=Edit&information_id=%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E 1.10 Input passed via the "zID" GET parameter to /admin/geo_zones.php is not properly sanitised before being returned to the user. This can be exploited to execute arbitrary HTML and script code in administrator's browser session in context of affected website. The following PoC demonstrates the vulnerability: http://[host]/admin/geo_zones.php?action=list&zID=%27%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E 1.11 Input passed via the "current_product_id" and "cPath" GET parameters to /admin/new_attributes_include.php is not properly sanitised before being returned to the user. This can be exploited to execute arbitrary HTML and script code in administrator's browser session in context of affected website. The following PoC demonstrate the vulnerability: http://[host]/admin/new_attributes_include.php?current_product_id=%22%3E%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E http://[host]/admin/new_attributes_include.php?cPath=%22%3E%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E 2) Multiple SQL Injections in osCmax: CVE-2012-1665 2.1 Input passed via the "status" GET parameter to /admin/stats_monthly_sales.php is not properly sanitised before being used in SQL query. This can be exploited to alter SQL queries. The vulnerability usage is limited to the "INTO FILE" clause. This vulnerability requires administrative privileges, however can be exploited via the CSRF technique. Remote attacker should make logged-in website administrator open the following URL (in hidden iframe for example): http://[host]/admin/stats_monthly_sales.php?status=0 union select '' INTO OUTFILE '../../../path/to/site/file.php' Depending on MySQL and PHP configurations, as well as file system permissions this PoC should create arbitrary PHP file within the web root. 2.2 Input passed via the "country" POST parameter to /admin/create_account_process.php is not properly sanitised before being used in SQL query. This can be exploited to alter SQL queries. The vulnerability usage is limited to the "INTO FILE" clause. This vulnerability requires administrative privileges, however can be exploited via the CSRF technique. Remote attacker should make logged-in website administrator open the page with following html code:
Depending on MySQL and PHP configurations, as well as file system permissions this PoC should create arbitrary PHP file within the web root. 2.3 Input passed via the "username" POST parameter to /admin/login.php is not properly sanitised before being used in SQL query. This can be exploited to manipulate SQL queries by injecting arbitrary SQL code. The following PoC (Proof of Concept) demonstrates the vulnerability:
----------------------------------------------------------------------------------------------- Solution: Upgrade to osCmax v2.5.1 More Information: http://www.oscmax.com/blog/michael_s/oscmax_v251_has_been_released_security_update http://bugtrack.oscmax.com/view.php?id=1165 ----------------------------------------------------------------------------------------------- References: [1] High-Tech Bridge Advisory HTB23081 - https://www.htbridge.com/advisory/HTB23081 - Multiple vulnerabilities in osCmax. [2] osCmax - http://www.oscmax.com - osCmax is a powerful e-commerce/shopping cart web application. osCmax has all the features needed to run a successful internet store and can be customized to whatever configuration you need. [3] Common Vulnerabilities and Exposures (CVE) - http://cve.mitre.org/ - international in scope and free for public use, CVE® is a dictionary of publicly known information security vulnerabilities and exposures. ----------------------------------------------------------------------------------------------- Disclaimer: The information provided in this Advisory is provided "as is" and without any warranty of any kind. Details of this Advisory may be updated in order to provide as accurate information as possible. The latest version of the Advisory is available on web page [1] in the References.