def process(self, prio, fuzz_res): # Getting results from plugins or directly from http if not activated enq_item = 0 plugin_name = "" # Check for plugins new enqueued requests while fuzz_res.plugins_backfeed: plg_backfeed = fuzz_res.plugins_backfeed.pop() plugin_name = plg_backfeed.source self.stats.backfeed += 1 self.stats.pending_fuzz += 1 self.send(plg_backfeed) enq_item += 1 if enq_item > 0: plres = PluginResult() plres.source = "Backfeed" fuzz_res.plugins_res.append(plres) plres.issue = "Plugin %s enqueued %d more requests (rlevel=%d)" % ( plugin_name, enq_item, fuzz_res.rlevel) # check if recursion is needed if self.max_rlevel >= fuzz_res.rlevel and fuzz_res.is_path(): self.send_new_seed(fuzz_res) # send new result self.send(fuzz_res)
def process(self, prio, fuzz_res): # Getting results from plugins or directly from http if not activated enq_item = 0 plugin_name = "" # Check for plugins new enqueued requests while fuzz_res.plugins_backfeed: plg_backfeed = fuzz_res.plugins_backfeed.pop() plugin_name = plg_backfeed.source self.stats.backfeed += 1 self.stats.pending_fuzz += 1 self.send(plg_backfeed) enq_item += 1 if enq_item > 0: plres = PluginResult() plres.source = "Backfeed" fuzz_res.plugins_res.append(plres) plres.issue = "Plugin {0!s} enqueued {1:d} more requests (rlevel={2:d})".format(plugin_name, enq_item, fuzz_res.rlevel) # check if recursion is needed if self.max_rlevel >= fuzz_res.rlevel and fuzz_res.is_path(): self.send_new_seed(fuzz_res) # send new result self.send(fuzz_res)
def run(self, fuzzresult, control_queue, results_queue): try: self.results_queue = results_queue self.base_fuzz_res = fuzzresult self.process(fuzzresult) except Exception, e: plres = PluginResult() plres.source = "$$exception$$" plres.issue = "Exception within plugin {0!s}: {1!s}".format(self.name, str(e)) results_queue.put(plres)
def send_new_seed(self, res): # Little hack to output that the result generates a new recursion seed plres = PluginResult() plres.source = "Recursion" plres.issue = "Enqueued response for recursion (level={0:d})".format((res.rlevel)) res.plugins_res.append(plres) # send new seed self.stats.pending_seeds += 1 self.send(res.to_new_seed())
def run(self, fuzzresult, control_queue, results_queue): try: self.results_queue = results_queue self.base_fuzz_res = fuzzresult self.process(fuzzresult) except Exception, e: plres = PluginResult() plres.source = "$$exception$$" plres.issue = "Exception within plugin {0!s}: {1!s}".format( self.name, str(e)) results_queue.put(plres)
def send_new_seed(self, res): # Little hack to output that the result generates a new recursion seed plres = PluginResult() plres.source = "Recursion" plres.issue = "Enqueued response for recursion (level=%d)" % ( res.rlevel) res.plugins_res.append(plres) # send new seed self.stats.pending_seeds += 1 self.send(res.to_new_seed())
def add_result(self, issue): plres = PluginResult() plres.source = self.name plres.issue = issue self.results_queue.put(plres)