Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
    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())
Пример #5
0
 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)
Пример #6
0
    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())
Пример #7
0
    def add_result(self, issue):
        plres = PluginResult()
        plres.source = self.name
        plres.issue = issue

        self.results_queue.put(plres)
Пример #8
0
    def add_result(self, issue):
	plres = PluginResult()
	plres.source = self.name
	plres.issue = issue

	self.results_queue.put(plres)