def __init__(self): # TODO: make auth handler and plugin manager singletons Advanced_API.__init__(self) Minimal.__init__(self) self.minimal = False self.auth_handler = AuthenticationHandler() self.plugManager = PluginManager() self.login_manager = LoginManager() self.plugManager.loadPlugins() self.login_manager.init_app(self.app) self.login_manager.user_loader(self.load_user) self.redisdb = Configuration.getRedisVendorConnection() self.defaultFilters.update({'blacklistSelect': 'on', 'whitelistSelect': 'on', 'unlistedSelect': 'show',}) self.args.update({'minimal': False}) self.pluginArgs = {"current_user": current_user, "plugin_manager": self.plugManager} routes = [{'r': '/cve/<cveid>', 'm': ['GET'], 'f': self.cve}, {'r': '/_get_plugins', 'm': ['GET'], 'f': self._get_plugins}, {'r': '/plugin/_get_cve_actions', 'm': ['GET'], 'f': self._get_cve_actions}, {'r': '/plugin/<plugin>', 'm': ['GET'], 'f': self.openPlugin}, {'r': '/plugin/<plugin>/subpage/<page>', 'm': ['GET'], 'f': self.openPluginSubpage}, {'r': '/plugin/<plugin>/_cve_action/<action>', 'm': ['GET'], 'f': self._jsonCVEAction}, {'r': '/login', 'm': ['POST'], 'f': self.login_check}, {'r': '/logout', 'm': ['POST'], 'f': self.logout}, {'r': '/admin', 'm': ['GET'], 'f': self.admin}, {'r': '/admin/', 'm': ['GET'], 'f': self.admin}, {'r': '/admin/change_pass', 'm': ['GET'], 'f': self.change_pass}, {'r': '/admin/request_token', 'm': ['GET'], 'f': self.request_token}, {'r': '/admin/updatedb', 'm': ['GET'], 'f': self.updatedb}, {'r': '/admin/whitelist/import', 'm': ['POST'], 'f': self.listImport}, {'r': '/admin/blacklist/import', 'm': ['POST'], 'f': self.listImport}, {'r': '/admin/whitelist/export', 'm': ['GET'], 'f': self.listExport}, {'r': '/admin/blacklist/export', 'm': ['GET'], 'f': self.listExport}, {'r': '/admin/whitelist/drop', 'm': ['POST'], 'f': self.listDrop}, {'r': '/admin/blacklist/drop', 'm': ['POST'], 'f': self.listDrop}, {'r': '/admin/whitelist', 'm': ['GET'], 'f': self.listView}, {'r': '/admin/blacklist', 'm': ['GET'], 'f': self.listView}, {'r': '/admin/addToList', 'm': ['GET'], 'f': self.listAdd}, {'r': '/admin/removeFromList', 'm': ['GET'], 'f': self.listRemove}, {'r': '/admin/editInList', 'm': ['GET'], 'f': self.listEdit}, {'r': '/admin/listmanagement', 'm': ['GET'], 'f': self.listManagement}, {'r': '/admin/listmanagement/<vendor>', 'm': ['GET'], 'f': self.listManagement}, {'r': '/admin/listmanagement/<vendor>/<product>', 'm': ['GET'], 'f': self.listManagement}, {'r': '/admin/listmanagement/add', 'm': ['GET'], 'f': self.listManagementAdd}, {'r': '/login', 'm': ['POST'], 'f': self.login_check}, {'r': '/ViewCveSlack', 'm': ['POST'], 'f': self.slack_cve}, {'r': '/ViewCveSlack', 'm': ['GET'], 'f': self.slack_cve}] for route in routes: self.addRoute(route)
def __init__(self): Advanced_API.__init__(self) Minimal.__init__(self) self.minimal = False self.auth_handler = AuthenticationHandler() self.plugManager = PluginManager() self.login_manager = LoginManager() self.plugManager.loadPlugins() self.login_manager.init_app(self.app) self.login_manager.user_loader(self.load_user) self.redisdb = Configuration.getRedisVendorConnection() self.args.update({'minimal': False}) self.pluginArgs = { "current_user": current_user, "plugin_manager": self.plugManager }
message = source['name'] + " has " + str( after) + " elements (" + str(after - before) + " update)" newelement = str(after - before) log(message) elif (args.c is True and source['name'] is "redis-cache-cpe"): log('Starting ' + source['name']) subprocess.Popen((shlex.split(source['updater']))).wait() log(source['name'] + " updated") for post in posts: log('Starting ' + post['name']) subprocess.Popen((shlex.split(post['updater']))).wait() if args.i and int(newelement) > 0: subprocess.Popen( (shlex.split("python3 " + os.path.join(runPath, "db_fulltext.py -v -l" + newelement)))).wait() if args.l is not False: log("Sleeping...") time.sleep(3600) log() if not args.p: plugManager = PluginManager() plugManager.loadPlugins() plugins = plugManager.getPlugins() if len(plugins) != 0: for plug in plugins: log("Starting " + plug.getName() + " plugin") message = plug.onDatabaseUpdate() if message: log(message)
def __init__(self): # TODO: make auth handler and plugin manager singletons Advanced_API.__init__(self) Minimal.__init__(self) self.minimal = False self.auth_handler = AuthenticationHandler() self.plugManager = PluginManager() self.login_manager = LoginManager() self.plugManager.loadPlugins() self.login_manager.init_app(self.app) self.login_manager.user_loader(self.load_user) self.redisdb = Configuration.getRedisVendorConnection() self.defaultFilters.update({ "blacklistSelect": "on", "whitelistSelect": "on", "unlistedSelect": "show", }) self.args.update({"minimal": False}) self.pluginArgs = { "current_user": current_user, "plugin_manager": self.plugManager, } routes = [ { "r": "/cve/<cveid>", "m": ["GET"], "f": self.cve }, { "r": "/_get_plugins", "m": ["GET"], "f": self._get_plugins }, { "r": "/plugin/_get_cve_actions", "m": ["GET"], "f": self._get_cve_actions }, { "r": "/plugin/<plugin>", "m": ["GET"], "f": self.openPlugin }, { "r": "/plugin/<plugin>/subpage/<page>", "m": ["GET"], "f": self.openPluginSubpage, }, { "r": "/plugin/<plugin>/_cve_action/<action>", "m": ["GET"], "f": self._jsonCVEAction, }, { "r": "/login", "m": ["POST"], "f": self.login_check }, { "r": "/logout", "m": ["GET"], "f": self.logout }, { "r": "/admin", "m": ["GET"], "f": self.admin }, { "r": "/admin/", "m": ["GET"], "f": self.admin }, { "r": "/admin/change_pass", "m": ["GET"], "f": self.change_pass }, { "r": "/admin/request_token", "m": ["GET"], "f": self.request_token }, { "r": "/admin/updatedb", "m": ["GET"], "f": self.updatedb }, { "r": "/admin/whitelist/import", "m": ["POST"], "f": self.listImport }, { "r": "/admin/blacklist/import", "m": ["POST"], "f": self.listImport }, { "r": "/admin/whitelist/export", "m": ["GET"], "f": self.listExport }, { "r": "/admin/blacklist/export", "m": ["GET"], "f": self.listExport }, { "r": "/admin/whitelist/drop", "m": ["POST"], "f": self.listDrop }, { "r": "/admin/blacklist/drop", "m": ["POST"], "f": self.listDrop }, { "r": "/admin/whitelist", "m": ["GET"], "f": self.listView }, { "r": "/admin/blacklist", "m": ["GET"], "f": self.listView }, { "r": "/admin/addToList", "m": ["GET"], "f": self.listAdd }, { "r": "/admin/removeFromList", "m": ["GET"], "f": self.listRemove }, { "r": "/admin/editInList", "m": ["GET"], "f": self.listEdit }, { "r": "/admin/listmanagement", "m": ["GET"], "f": self.listManagement }, { "r": "/admin/listmanagement/<vendor>", "m": ["GET"], "f": self.listManagement, }, { "r": "/admin/listmanagement/<vendor>/<product>", "m": ["GET"], "f": self.listManagement, }, { "r": "/admin/listmanagement/add", "m": ["GET"], "f": self.listManagementAdd, }, { "r": "/login", "m": ["POST"], "f": self.login_check }, ] for route in routes: self.addRoute(route)
import json from lib.PluginManager import PluginManager pm = PluginManager() pm.loadPlugins() cves = {} for _id in pm.getAllCVEIDs(): cves[_id] = pm.getCVERefs(_id) for _id in pm.getAllCVEIDs(): cves[_id] = pm.updateRefs(_id, cves[_id]) open("VIA4CVE-feed.json", "w").write(json.dumps(cves))
help='Output location ( Default: VIA4CVE-feed.json)') parser.add_argument('--no-update', action='store_true', help="DEBUG: don't run the update part of the sources") parser.add_argument( '--no-cleanup', action='store_true', help="DEBUG: don't run the cleanup part of the sources") parser.add_argument( '--verify', action='store_true', help="Verify that the created file passes the unit test") args = parser.parse_args() pm = PluginManager() # Create plug-in manager pm.loadPlugins() # Load all sources & parse data cves = {} # Create empty dictionary to fill up path = args.file if args.file else "VIA4CVE-feed.json" # Generate path based on user preferences for _id in pm.getAllCVEIDs(): cves[_id] = pm.getCVERefs(_id) # Get data per CVE if not args.no_update: for _id in cves.keys(): pm.updateRefs(_id, cves[_id]) # Update data based on previous data if not args.no_cleanup: for _id in cves.keys(): pm.cleanUp(_id, cves[_id]) # Clean data data = {