def start_proxy(self, options): # The proxy along with supporting processes are started if True: # Check if port is in use try: temp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) temp_socket.bind( (self.db_config.Get('INBOUND_PROXY_IP'), int(self.db_config.Get('INBOUND_PROXY_PORT')))) temp_socket.close() except socket.error: self.error_handler.FrameworkAbort( "Inbound proxy address %s:%s already in use" % (self.db_config.Get('INBOUND_PROXY_IP'), self.db_config.Get("INBOUND_PROXY_PORT"))) # If everything is fine. self.ProxyProcess = proxy.ProxyProcess() self.ProxyProcess.initialize(options['OutboundProxy'], options['OutboundProxyAuth']) self.TransactionLogger = transaction_logger.TransactionLogger( cache_dir=self.db_config.Get('INBOUND_PROXY_CACHE_DIR')) logging.warn( "%s:%s <-- HTTP(S) Proxy to which requests can be directed", self.db_config.Get('INBOUND_PROXY_IP'), self.db_config.Get("INBOUND_PROXY_PORT")) self.ProxyProcess.start() logging.debug("Starting Transaction logger process") self.TransactionLogger.start() logging.debug("Proxy transaction's log file at %s", self.db_config.Get("PROXY_LOG")) else: ComponentInitialiser.initialisation_phase_3( options['OutboundProxy'])
def StartProxy(self, Options): # The proxy along with supporting processes are started if Options["ProxyMode"]: if not os.path.exists(self.Config.Get('CACHE_DIR')): os.makedirs(self.Config.Get('CACHE_DIR')) else: shutil.rmtree(self.Config.Get('CACHE_DIR')) os.makedirs(self.Config.Get('CACHE_DIR')) InboundProxyOptions = [ self.Config.Get('INBOUND_PROXY_IP'), self.Config.Get('INBOUND_PROXY_PORT') ] transaction_db_path = os.path.join(self.Config.Get('OUTPUT_PATH'), self.Config.Get('HOST_IP'), 'transactions') if not os.path.exists(transaction_db_path): os.makedirs(transaction_db_path) for folder_name in [ 'url', 'req-headers', 'req-body', 'resp-code', 'resp-headers', 'resp-body' ]: folder_path = os.path.join(transaction_db_path, folder_name) if not os.path.exists(folder_path): os.mkdir(folder_path) if self.Config.Get('COOKIES_BLACKLIST_NATURE'): regex_cookies_list = [ cookie + "=([^;]+;?)" for cookie in self.Config.Get('COOKIES_LIST') ] blacklist = True else: regex_cookies_list = [ "(" + cookie + "=[^;]+;?)" for cookie in self.Config.Get('COOKIES_LIST') ] blacklist = False regex_string = '|'.join(regex_cookies_list) cookie_regex = re.compile(regex_string) cookie_filter = {'BLACKLIST': blacklist, 'REGEX': cookie_regex} self.ProxyProcess = proxy.ProxyProcess( self, self.Config.Get('INBOUND_PROXY_PROCESSES'), InboundProxyOptions, transaction_db_path, self.Config.Get('INBOUND_PROXY_SSL'), cookie_filter, Options['OutboundProxy'], Options['OutboundProxyAuth']) """ self.TransactionLogger = transaction_logger.TransactionLogger( self.Config.Get('CACHE_DIR'), transaction_db_path ) """ cprint("Started Inbound proxy at " + self.Config.Get('INBOUND_PROXY')) self.ProxyProcess.start() #self.TransactionLogger.start() self.Requester = requester.Requester(self, InboundProxyOptions) else: self.Requester = requester.Requester(self, Options['OutboundProxy'])
def StartProxy(self, Options): # The proxy along with supporting processes are started if Options["ProxyMode"]: self.ProxyProcess = proxy.ProxyProcess( self, Options['OutboundProxy'], Options['OutboundProxyAuth']) self.TransactionLogger = transaction_logger.TransactionLogger(self) cprint("Starting Inbound proxy at " + self.Config.Get('INBOUND_PROXY')) self.ProxyProcess.start() cprint("Starting Transaction logger process") self.TransactionLogger.start() self.Requester = requester.Requester(self, [ self.Config.Get('INBOUND_PROXY_IP'), self.Config.Get('INBOUND_PROXY_PORT') ]) else: self.Requester = requester.Requester(self, Options['OutboundProxy'])
def StartProxy(self, Options): # The proxy along with supporting processes are started if not self.Config.Get('SIMULATION'): self.ProxyProcess = proxy.ProxyProcess( self, Options['OutboundProxy'], Options['OutboundProxyAuth'] ) self.TransactionLogger = transaction_logger.TransactionLogger(self) cprint("Starting Inbound proxy at " + self.Config.Get('INBOUND_PROXY')) self.ProxyProcess.start() cprint("Starting Transaction logger process") self.TransactionLogger.start() self.Requester = requester.Requester(self, [self.Config.Get('INBOUND_PROXY_IP'), self.Config.Get('INBOUND_PROXY_PORT')]) cprint("Proxy transaction's log file at %s"%(self.Config.Get("PROXY_LOG"))) cprint("Visit http://" + self.Config.Get('INBOUND_PROXY') + "/proxy to use Plug-n-Hack standard") cprint("Execution of OWTF is halted.You can browse through OWTF proxy) Press Enter to continue with OWTF") if Options["Interactive"]: raw_input() else: self.Requester = requester.Requester(self, Options['OutboundProxy'])
def StartProxy(self, Options): # The proxy along with supporting processes are started if not self.Config.Get('SIMULATION'): # Check if port is in use try: temp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) temp_socket.bind((self.Config.Get('INBOUND_PROXY_IP'), int(self.Config.Get('INBOUND_PROXY_PORT')))) temp_socket.close() except Exception: self.Error.FrameworkAbort("Inbound proxy address " + self.Config.Get('INBOUND_PROXY') + " already in use") # If everything is fine self.ProxyProcess = proxy.ProxyProcess( self, Options['OutboundProxy'], Options['OutboundProxyAuth']) self.TransactionLogger = transaction_logger.TransactionLogger(self) cprint("Starting Inbound proxy at " + self.Config.Get('INBOUND_PROXY')) self.ProxyProcess.start() cprint("Starting Transaction logger process") self.TransactionLogger.start() self.Requester = requester.Requester(self, [ self.Config.Get('INBOUND_PROXY_IP'), self.Config.Get('INBOUND_PROXY_PORT') ]) cprint("Proxy transaction's log file at %s" % (self.Config.Get("PROXY_LOG"))) cprint("Visit http://" + self.Config.Get('INBOUND_PROXY') + "/proxy to use Plug-n-Hack standard") cprint( "Execution of OWTF is halted.You can browse through OWTF proxy) Press Enter to continue with OWTF" ) if Options["Interactive"]: raw_input() else: self.Requester = requester.Requester(self, Options['OutboundProxy'])