From 06bbfe9c3b1e19395287bc0883eaee0efeb4538c Mon Sep 17 00:00:00 2001 From: Brendan Coles Date: Mon, 29 Jun 2015 19:31:35 +0000 Subject: [PATCH] Add BeEF::Filters.is_valid_port --- core/filters/base.rb | 9 +++++++++ extensions/network/models/network_service.rb | 1 + 2 files changed, 10 insertions(+) diff --git a/core/filters/base.rb b/core/filters/base.rb index 9bf65df52..0a28968e2 100644 --- a/core/filters/base.rb +++ b/core/filters/base.rb @@ -142,6 +142,15 @@ module Filters valid end + # Checks if the given string is a valid TCP port + # @param [String] port string for testing + # @return [Boolean] true if the string is a valid TCP port, otherwise false + def self.is_valid_port?(port) + valid = false + valid = true if port.to_i > 0 && port.to_i < 2**16 + valid + end + # Checks if string is a valid domain name # @param [String] domain string for testing # @return [Boolean] If the string is a valid domain name diff --git a/extensions/network/models/network_service.rb b/extensions/network/models/network_service.rb index 724c4e5f7..733a2c4c7 100644 --- a/extensions/network/models/network_service.rb +++ b/extensions/network/models/network_service.rb @@ -29,6 +29,7 @@ module BeEF def self.add(service={}) (print_error "Invalid hooked browser session"; return) if not BeEF::Filters.is_valid_hook_session_id?(service[:hooked_browser_id]) (print_error "Invalid IP address"; return) if not BeEF::Filters.is_valid_ip?(service[:ip]) + (print_error "Invalid port"; return) if not BeEF::Filters.is_valid_port?(service[:port]) # store the returned network host details BeEF::Core::Models::NetworkHost.add(