diff --git a/core/main/autorun_engine/parser.rb b/core/main/autorun_engine/parser.rb index fd0bdb4cc..576ef3e08 100644 --- a/core/main/autorun_engine/parser.rb +++ b/core/main/autorun_engine/parser.rb @@ -30,15 +30,20 @@ module BeEF return [false, 'Illegal author name'] unless BeEF::Filters.is_non_empty_string?(author) return [false, 'Illegal browser definition'] unless BROWSER.include?(browser) - return [false, 'Illegal browser_version definition'] unless - (VERSION.include?(browser_version[0,2].gsub(/\s+/,'')) || browser_version == 'ALL') && - BeEF::Filters::is_valid_browserversion?(browser_version[2..-1].gsub(/\s+/,'')) && browser_version.length < MAX_VER_LEN + + if browser_version != 'ALL' + return [false, 'Illegal browser_version definition'] unless + VERSION.include?(browser_version[0,2].gsub(/\s+/,'')) && + BeEF::Filters::is_valid_browserversion?(browser_version[2..-1].gsub(/\s+/,'')) && browser_version.length < MAX_VER_LEN + end + + if os_version != 'ALL' + return [false, 'Illegal os_version definition'] unless + VERSION.include?(os_version[0,2].gsub(/\s+/,'')) && + BeEF::Filters::is_valid_osversion?(os_version[2..-1].gsub(/\s+/,'')) && os_version.length < MAX_VER_LEN + end return [false, 'Illegal os definition'] unless OS.include?(os) - return [false, 'Illegal os_version definition'] unless - (VERSION.include?(os_version[0,2].gsub(/\s+/,'')) || os_version == 'ALL') && - BeEF::Filters::is_valid_osversion?(os_version[2..-1].gsub(/\s+/,'')) && os_version.length < MAX_VER_LEN - # check if module names, conditions and options are ok modules.each do |cmd_mod|