From faa494206439434089a7f1e4c1eb79a41ab9cdd0 Mon Sep 17 00:00:00 2001 From: TheShadow88 Date: Tue, 23 Jan 2018 18:15:38 +0200 Subject: [PATCH 1/2] Added test2 and regex --- lib/core/search.py | 60 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/lib/core/search.py b/lib/core/search.py index 2b35a37..55dfce4 100755 --- a/lib/core/search.py +++ b/lib/core/search.py @@ -8,7 +8,7 @@ from config.constants import db from lib.core.methods import CveExploit from lib.common.database import Database - +import re class Search(object): def __init__(self, query): @@ -141,6 +141,64 @@ def text(self): self.res = None return json.dumps(self.res, indent=2) + + + def text2(self): + self.cve_id = [] + self.entry = self.query + (self.cur, self.conn) = Database(None).db_init() + self.entry_data = [] + def constr(ls): + def filter_data(x): + desc = x[3] + for x in ls: + if not x in desc: + return False + return True + return filter_data + for x in self.entry.split(" "): + self.cur.execute("SELECT * from nvd_db where summary like ? ORDER BY cveid DESC", + ('%' + x + '%',)) + self.entry_data += self.cur.fetchall() + self.entry_data = filter(constr(self.entry.split(" ")), self.entry_data) + if self.entry_data: + for self.data in self.entry_data: + self.cve_id.append(self.data[0] + " : " + self.data[3]) + + item = {self.entry.split(" "): {"vulnerability": self.cve_id}} + self.res.append(item) + else: + self.res = None + + return json.dumps(self.res, indent=2) + + + def regex(self): + self.cve_id = [] + self.entry = self.query + (self.cur, self.conn) = Database(None).db_init() + self.entry_data = [] + def constr(regex_str): + def filter_data(x): + desc = x[3] + regex = re.compile(regex_str) + return re.search(regex, desc) != None + return filter_data + + self.cur.execute("SELECT * from nvd_db ORDER BY cveid DESC") + self.entry_data += self.cur.fetchall() + self.entry_data = filter(constr(self.entry), self.entry_data) + if self.entry_data: + for self.data in self.entry_data: + self.cve_id.append(self.data[0] + " : " + self.data[3]) + + item = {"Pattern('" +self.entry+ "')": {"vulnerability": self.cve_id}} + self.res.append(item) + else: + self.res = None + + return json.dumps(self.res, indent=2) + @staticmethod def check_msf(cve): From 83a47bfd77c2810edd8722fecc79eb2bb94361a3 Mon Sep 17 00:00:00 2001 From: TheShadow88 Date: Sat, 10 Feb 2018 23:45:40 +0200 Subject: [PATCH 2/2] shaped code a bit --- lib/core/search.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/core/search.py b/lib/core/search.py index 55dfce4..3f03871 100755 --- a/lib/core/search.py +++ b/lib/core/search.py @@ -156,16 +156,15 @@ def filter_data(x): return False return True return filter_data - for x in self.entry.split(" "): - self.cur.execute("SELECT * from nvd_db where summary like ? ORDER BY cveid DESC", - ('%' + x + '%',)) - self.entry_data += self.cur.fetchall() + + self.cur.execute("SELECT * from nvd_db ORDER BY cveid DESC") + self.entry_data = self.cur.fetchall() self.entry_data = filter(constr(self.entry.split(" ")), self.entry_data) if self.entry_data: for self.data in self.entry_data: self.cve_id.append(self.data[0] + " : " + self.data[3]) - item = {self.entry.split(" "): {"vulnerability": self.cve_id}} + item = {str(self.entry.split(" ")): {"vulnerability": self.cve_id}} self.res.append(item) else: self.res = None