def __init__(self, PluginClass=None): """ @param PluginClass: as returned by handler.list('controller'). Must extend BasePlugin. """ plugin = PluginClass() if plugin: self.name = plugin._meta.label if plugin.can_enumerate_plugins: self.plugins_can_enumerate = True self.plugins_wordlist_size = file_len(plugin.plugins_file) if plugin.can_enumerate_themes: self.themes_can_enumerate = True self.themes_wordlist_size = file_len(plugin.themes_file) if plugin.can_enumerate_interesting: self.interesting_can_enumerate = True self.interesting_url_size = len(plugin.interesting_urls) if plugin.can_enumerate_version: versions_file = VersionsFile(plugin.versions_file) self.version_can_enumerate = True hvm = versions_file.highest_version_major(plugin.update_majors) self.version_highest = ', '.join(hvm.values())
def test_gets_modules(self): # unwrap the generator plugins_generator = self.scanner.plugins_get() plugins = [] for plugin in plugins_generator: plugins.append(plugin) l = file_len(self.scanner.plugins_file) assert l == len(plugins), "Should have read the contents of the file."
def enumerate_themes(self, url, base_url, scanning_method='forbidden', max_plugins=500, threads=10, verb='head', timeout=15, hide_progressbar=False, imu=None, headers={}): iterator = self.themes_get iterator_len = file_len(self.themes_file) return self.enumerate(url, base_url, scanning_method, iterator, iterator_len, max_plugins, threads, verb, timeout, hide_progressbar, imu, headers)
def test_file_len_empty_file(self): m = mock_open() with patch('dscan.common.functions.open', m, create=True) as o: ln = file_len("test") print(o.call_args_list) assert ln == 0