diff --git a/lib/filter/base.rb b/lib/filter/base.rb index b6c1cca95..633f566af 100644 --- a/lib/filter/base.rb +++ b/lib/filter/base.rb @@ -83,6 +83,13 @@ module BeEF not (str =~ /[^\w\d\s()-.,;:_\/!\302\256]/).nil? # \302\256 is the (r) character end + # check for valid base details chars + # this is for basic flitering where possible all specific filters must be implemented + def self.has_valid_base_chars?(str) + return false if not is_non_empty_string?(str) + (str =~ /[^\302\256[:print:]]/).nil? # \302\256 is the (r) character + end + end end diff --git a/lib/filter/command.rb b/lib/filter/command.rb index ff39f26e9..7b02ca317 100644 --- a/lib/filter/command.rb +++ b/lib/filter/command.rb @@ -33,14 +33,13 @@ module BeEF # check if valid command module datastore value def self.is_valid_command_module_datastore_param?(str) return false if BeEF::Filter.has_null?(str) - return BeEF::Filter.has_valid_key_chars?(str) - true + has_valid_base_chars?(str) end # check for word and some punc chars def self.has_valid_key_chars?(str) return false if not BeEF::Filter.is_non_empty_string?(str) - (str =~ /[^\w\d\s()-.,;_\302\256]/).nil? # \302\256 is the (r) character + has_valid_base_chars?(str) end # check for word and underscore chars