本文整理汇总了Python中reporter.Reporter.start_targets方法的典型用法代码示例。如果您正苦于以下问题:Python Reporter.start_targets方法的具体用法?Python Reporter.start_targets怎么用?Python Reporter.start_targets使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类reporter.Reporter
的用法示例。
在下文中一共展示了Reporter.start_targets方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Scanner
# 需要导入模块: from reporter import Reporter [as 别名]
# 或者: from reporter.Reporter import start_targets [as 别名]
#.........这里部分代码省略.........
result["passive"][passive_testclass_key] = self.do_passive_scan(passive_testclass, is_ssl, response)
self.reporter.write_passive(passive_testclass, result["passive"][passive_testclass_key])
self.reporter.end_passives()
return result
def scan_target(self, target):
''' iterate over registered tests and deligate for scan '''
self.reporter.write_target(target)
Scanner.logger.info("[%s] scanning:" % target)
url = urlparse(target)
is_ssl = url.scheme == "https"
self.results = {}
self.reporter.start_actives()
self.active_tests_stack = self._active_tests_
while len(self.active_tests_stack) > 0:
testclass = self.active_tests_stack[0]
self.active_tests_stack = self.active_tests_stack[1:]
testclass_key = "%s.%s" % (getmodule(testclass).__name__, testclass.__name__)
self.results[testclass_key] = self.do_active_scan(testclass, is_ssl, target)
if hasattr(testclass, 'events'): #TODO enforce every test to have event dict present?
events_lower = dict([(k.lower(),v) for k,v in testclass.events.items()])
if self.results[testclass_key]['state'].lower() in events_lower and events_lower[self.results[testclass_key]['state'].lower()] != None:
nexttest = events_lower[self.results[testclass_key]['state'].lower()]
Scanner.logger.info("\t[%s] Instantiated because %s declares it as its successor (the event was '%s')" % (nexttest, testclass, self.results[testclass_key]['state']))
self.active_tests_stack.append(nexttest) # we have to hand over the response!!1, # important: we hand over an instance, not the class
self._finished_active_tests_.append(testclass)
self.reporter.end_actives()
return self.results
def run_scan(self):
''' iterate over target and deligate to list of tests '''
results = {}
self.reporter.start_report()
self.reporter.start_targets()
if len(self._targets_) == 0:
Scanner.logger.error('No targets configured.')
return
for target in self._targets_:
try:
results[target] = self.scan_target(target)
except:
Scanner.logger.error(traceback.format_exc())
self.reporter.end_targets()
result = self.reporter.end_report(results)
if (self.output == "-"):
print result
else:
file = open(self.output, "w")
file.write(self.reporter.end_report(results))
file.close()
def register_target(self, url):
''' add target to the scanning engine '''
u = urlparse(url)
valid = u.netloc != "" and u.scheme in self._protos_
reason = "%s%s" % ("[bad netloc]" if u.netloc == "" else "", "" if u.scheme in self._protos_ else "[bad scheme]")
# todo - support ipv6 urls
host = u.netloc.split(':')[0]
if (self.resolve_target):
try:
socket.getaddrinfo(host, None)
except socket.gaierror:
valid = False
reason = "%s[dns]" % reason