def __init__(self, targets=None, payloads=None, num_threads=10, time_per_url=10, request_timeout=10, proxy_list=None, hadoop_reporting=False, depreciated=None): """ Initialize this WebFuzzer object. targets list of Target objects. Default []. payloads list of Payload objects. Default []. num_threads Number of threads/processes to launch as an int. Default 10. time_per_url Time in seconds to spend on each Target. Default 10. request_timeout Time in seconds to wait for a connection before giving up. Default 10. proxy_list list of proxies specified as dicts. Default empty. hadoop_reporting Output info for hadoop if True. Default False. payload_groups UNUSED. list of groups of Payload objects. Default []. """ super(WebFuzzer, self).__init__() # do this because we may need to create more MassRequest objects in # checks (like bsqli), needs to be configured the same self.mreq_config_dict = {"num_threads": num_threads, "time_per_url": time_per_url, "request_timeout": request_timeout, "proxy_list": proxy_list or [{}], "hadoop_reporting": hadoop_reporting} self.mreq = MassRequest(**self.mreq_config_dict) self.targets = targets or [] self.payloads = payloads or [] self.mxi_check = MXICheck() self.osci_check = OSCICheck() self.sqli_check = SQLICheck() self.trav_check = TravCheck() self.xpathi_check = XPathICheck() self.xss_check = XSSCheck() self.hadoop_reporting = hadoop_reporting if self.hadoop_reporting: logger.info("Hadoop reporting set in fuzzer") self.fuzzy_targets = []