Class: Msf::Exploit::SQLi::PostgreSQLi::TimeBasedBlind
- Includes:
- TimeBasedBlindMixin
- Defined in:
- lib/msf/core/exploit/sqli/postgresqli/time_based_blind.rb
Overview
Time-Based Blind SQL injection support for PostgreSQL
Constant Summary
Constants inherited from Common
Common::BIT_COUNTS, Common::ENCODERS
Instance Attribute Summary
Attributes inherited from Common
#concat_separator, #datastore, #framework, #null_replacement, #safe, #second_concat_separator, #truncation_length
Attributes included from Rex::Ui::Subscriber::Input
Attributes included from Rex::Ui::Subscriber::Output
Instance Method Summary collapse
-
#test_vulnerable ⇒ Boolean
This method checks if the target is vulnerable to Blind time-based injection by checking if the target sleeps only when a given condition is true, and doesn’t when it’s false.
Methods included from TimeBasedBlindMixin
Methods inherited from Common
#current_database, #current_user, #dump_table_fields, #enum_database_names, #enum_dbms_users, #enum_table_columns, #enum_table_names, #enum_view_names, #initialize, #read_from_file, #version, #write_to_file
Methods inherited from Common
#initialize, #raw_run_sql, #run_sql
Methods included from Module::UI
Methods included from Module::UI::Message
#print_error, #print_good, #print_prefix, #print_status, #print_warning
Methods included from Module::UI::Message::Verbose
#vprint_error, #vprint_good, #vprint_status, #vprint_warning
Methods included from Module::UI::Line
#print_line, #print_line_prefix
Methods included from Module::UI::Line::Verbose
Methods included from Rex::Ui::Subscriber
Methods included from Rex::Ui::Subscriber::Input
Methods included from Rex::Ui::Subscriber::Output
#flush, #print, #print_blank_line, #print_error, #print_good, #print_line, #print_status, #print_warning
Constructor Details
This class inherits a constructor from Msf::Exploit::SQLi::PostgreSQLi::Common
Instance Method Details
#test_vulnerable ⇒ Boolean
This method checks if the target is vulnerable to Blind time-based injection by checking if the target sleeps only when a given condition is true, and doesn’t when it’s false.
12 13 14 15 16 |
# File 'lib/msf/core/exploit/sqli/postgresqli/time_based_blind.rb', line 12 def test_vulnerable out_true = blind_request("1=(case when 1=1 then (select 1 from pg_sleep(#{datastore['SqliDelay']})) else 1 end)") out_false = blind_request("1=(case when 1=2 then (select 1 from pg_sleep(#{datastore['SqliDelay']})) else 1 end)") out_true && !out_false end |