module PWN::Plugins::DAOPostgres
def self.authors
def self.authors st.pentest@0dayinc.com>
def self.connect(opts = {})
def self.connect(opts = {}) .to_s rt].nil? || opts[:port].zero? t].to_i ame].to_s .to_s [:password].nil? Plugins::AuthenticationHelper.mask_password :password].to_s if opts[:connect_timeout].nil? 60 else opts[:connect_timeout].to_i end tions] ] le' ' r' re' valid :sslmode => #{opts[:sslmode]}. Valid params are :disable, :allow, :prefer, or :require" ection.new( rd, connect_timeout, , g_conn: pg_conn) => e
def self.disconnect(opts = {})
def self.disconnect(opts = {}) _conn] g_conn: pg_conn) => e
def self.help
def self.help }.connect( d host or IP', l port (defaults to 5432)', red database name', d username', ional (prompts if left blank)', t: 'optional (defaults to 60 seconds)', onal postgres options', tty', ble|:allow|:prefer|:require l_statement( nn, ment: 'SELECT * FROM tn_users WHERE state = $1', ms: ['Active'] st_all_columns_by_table( nn, red schema name', equired table name' ct(pg_conn: pg_conn)
def self.list_all_columns_by_table(opts = {})
def self.list_all_columns_by_table(opts = {}) _conn] g_conn: pg_conn) s[:table_schema].to_s :table_name].to_s formation_schema.columns ma = $1 $2 , nt: prep_sql, : [table_schema, table_name] => e
def self.sql_statement(opts = {})
def self.sql_statement(opts = {}) _conn] g_conn: pg_conn) = opts[:prepared_statement] # Can also be leveraged for 'select * from user;' opts[:statement_params] # << Array of Params tement_params => #{statement_params.class}. Pass as an Array object" unless statement_params.instance_of?(Array) || statement_params.nil? s.nil? pared_statement) pared_statement, statement_params) => e
def self.validate_pg_conn(opts = {})
def self.validate_pg_conn(opts = {}) conn] id pg_conn Object #{pg_conn}" unless pg_conn.instance_of?(PG::Connection) => e