Commit e6da3545 authored by PidgeyL's avatar PidgeyL
Browse files

Merge branch 'objectify' of https://github.com/CVE-Search/CVE-Search into objectify

parents f8570c01 91bd373b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ if __name__ == '__main__':
    _ap.add_argument('-p', type=str, help='S = search product, e.g. o:microsoft:windows_7 or o:cisco:ios:12.1')
    _ap.add_argument('-f', type=str, help='F = free text search in vulnerability summary')
    _ap.add_argument('-c', action='append', help='search one or more CVE-ID')
    _ap.add_argument('-o', type=str, help='O = output format [csv|html|json|xml|cveid|asciidoc]')
    _ap.add_argument('-o', type=str, default='human', help='O = output format [csv|html|json|xml|cveid|asciidoc]')
    _ap.add_argument('-l', action='store_true', help='sort in descending mode')
    _ap.add_argument('-n', action='store_true', help='lookup complete cpe (Common Platform Enumeration) name for vulnerable configuration')
    _ap.add_argument('-r', action='store_true', help='lookup ranking of vulnerable configuration')
+506 −506
Original line number Diff line number Diff line
@@ -74,10 +74,11 @@ class Database(metaclass=Singleton):
        return connect

    def sanitize(self, x):
    if type(x)==pymongo.cursor.Cursor:
        if isinstance(x, pymongo.cursor.Cursor):
            x=list(x)
    if type(x)==list:
        if isinstance(x, list):
            for y in x: self.sanitize(y)
        if isinstance(x, dict):
            if x and  "_id" in x: x.pop("_id")
        return x

@@ -226,11 +227,12 @@ class Database(metaclass=Singleton):
                self.sanitize(self.colCVE.find({"vulnerable_configuration": {"$regex": cpe}}).sort("Modified", -1))]

    def cve_query(self, limit=False, skip=0, sort=None, query={}):
        if not sort: sort = ("Modified", "desc")
        if isinstance(query, list): query = {"$and": query}
        if isinstance(sort, (list, tuple)) and len(sort) == 2:
            if sort[1].lower() == "asc": sort = (sort[0], 1)
            else:                        sort = (sort[0], -1) # Default Descending
    cves = self.colCVE.find(query).sort(sort[0], sort[1]).limit(limit).skip(skip)
        cves = list(self.colCVE.find(query).sort(sort[0], sort[1]).limit(limit).skip(skip))
        return [CVE.fromDict(x) for x in self.sanitize(cves)]

    def cve_textSearch(self, text):
@@ -299,7 +301,6 @@ class Database(metaclass=Singleton):
                    bulk.find({'id': x.id}).upsert().update({'$set': x.dict()})
            bulk.execute()


    def cwe_getAll(self):
        return [CWE.fromDict(x) for x in self.sanitize(self.colCWE.find())] or []

@@ -317,7 +318,6 @@ class Database(metaclass=Singleton):
                    bulk.find({'id': x.id}).upsert().update({'$set': x.dict()})
            bulk.execute()


    def capec_getAll(self):
        return [CAPEC.fromDict(x) for x in
                self.sanitize(self.colCAPEC.find())] or []
@@ -343,7 +343,7 @@ class Database(metaclass=Singleton):

    def via4_link(self, key, val):
        cveList=[x['id'] for x in self.colVIA4.find({key: val})]
    return self.sanitize(self.cve_query(query={'id':{'$in':cveList}}))
        return self.cve_query(query={'id':{'$in':cveList}})

    def via4_drop(self):
        self.colVIA4.drop()
+506 −507
Original line number Diff line number Diff line
@@ -239,7 +239,6 @@ class CVEs:
        return cve

    def query(self, limit=False, skip=0, sort=None,  query={}, **kwargs):
    if not sort: sort = ("Modified", "desc")
        cves = self.db.cve_query(limit=limit, skip=skip, sort=sort, query=query)
        self._enhance(cves, **kwargs)
        return cves
+2 −2
Original line number Diff line number Diff line
@@ -32,8 +32,8 @@ class Query():
        data = json.loads(r.text)
        if   r.status_code is 200 and data['status'] == 'success':
            return data['data']
        elif r.status_code is 404 and data['status'] == 'success'
                                  and data['reason'] == 'cve not found':
        elif (r.status_code is 404 and data['status'] == 'success' 
                                   and data['reason'] == 'cve not found'):
            return None
        else:
            return False
+2 −3
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ def get_routes(app):
            {'r': '/plugin/<plugin>/subpage/<page>',          'm': ['GET'],  'f': app.openPluginSubpage},
            {'r': '/plugin/<plugin>/_cve_action/<action>',    'm': ['GET'],  'f': app._jsonCVEAction},
            {'r': '/login',                                   'm': ['POST'], 'f': app.login_check},
            {'r': '/logout',                                  'm': ['POST'], 'f': app.logout},
            {'r': '/logout',                                  'm': ['GET'],  'f': app.logout},
            {'r': '/admin',                                   'm': ['GET'],  'f': app.admin},
            {'r': '/admin/',                                  'm': ['GET'],  'f': app.admin},
            {'r': '/admin/change_pass',                       'm': ['GET'],  'f': app.change_pass},
@@ -95,7 +95,6 @@ def get_routes(app):
            {'r': '/admin/listmanagement',                    'm': ['GET'],  'f': app.listManagement},
            {'r': '/admin/listmanagement/<vendor>',           'm': ['GET'],  'f': app.listManagement},
            {'r': '/admin/listmanagement/<vendor>/<product>', 'm': ['GET'],  'f': app.listManagement},
            {'r': '/admin/listmanagement/add',                'm': ['GET'],  'f': app.listManagementAdd},
            {'r': '/login',                                   'm': ['POST'], 'f': app.login_check} ] )
            {'r': '/admin/listmanagement/add',                'm': ['GET'],  'f': app.listManagementAdd}])

    return ROUTES
Loading