def _setHTTPProxy(): """ Check and set the HTTP/SOCKS proxy for all HTTP requests. """ if not conf.proxy: return infoMsg = "setting the HTTP/SOCKS proxy for all HTTP requests" logger.log(CUSTOM_LOGGING.SYSINFO, infoMsg) try: _ = urlparse.urlsplit(conf.proxy) except Exception, ex: errMsg = "invalid proxy address '%s' ('%s')" % (conf.proxy, ex) raise PocsuiteSyntaxException(errMsg)
def _setHTTPExtraHeaders(): if conf.headers: infoMsg = "setting extra HTTP headers" logger.log(CUSTOM_LOGGING.SYSINFO, infoMsg) conf.headers = conf.headers.split("\n") if "\n" in conf.headers else conf.headers.split("\\n") for headerValue in conf.headers: if not headerValue.strip(): continue if headerValue.count(':') >= 1: header, value = (_.lstrip() for _ in headerValue.split(":", 1)) if header and value: conf.httpHeaders[header] = value else: errMsg = "invalid header value: %s. Valid header format is 'name:value'" % repr(headerValue).lstrip('u') raise PocsuiteSyntaxException(errMsg)
scheme = _.scheme.upper() hostname = hostnamePort[0] port = None username = None password = None if len(hostnamePort) == 2: try: port = int(hostnamePort[1]) except: pass # drops into the next check block if not all((scheme, hasattr(PROXY_TYPE, scheme), hostname, port)): errMsg = "proxy value must be in format '(%s)://address:port'" % "|".join( _[0].lower() for _ in getPublicTypeMembers(PROXY_TYPE)) raise PocsuiteSyntaxException(errMsg) if conf.proxyCred: _ = re.search("^(.*?):(.*?)$", conf.proxyCred) if not _: errMsg = "Proxy authentication credentials " errMsg += "value must be in format username:password" raise PocsuiteSyntaxException(errMsg) else: username = _.group(1) password = _.group(2) if scheme == PROXY_TYPE.SOCKS4: proxyMode = socks.PROXY_TYPE_SOCKS4 elif scheme == PROXY_TYPE.SOCKS5: proxyMode = socks.PROXY_TYPE_SOCKS5