Skip to content

Commit ee455f7

Browse files
committed
Added exclude parameter (#1)
1 parent 15bdeed commit ee455f7

File tree

1 file changed

+37
-19
lines changed

1 file changed

+37
-19
lines changed

searchsploit.py

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ def scrapeRC():
121121
# parserSearchTerms = parserCommands.add_argument_group()
122122

123123
# TODO: Build custom formatter to prevent smaller args from having values
124-
parser.add_argument("searchTerms", nargs=argparse.REMAINDER)
124+
parser.add_argument("searchTerms", nargs="*")
125125

126126
parser.add_argument("-c", "--case", action="store_true",
127127
help="Perform a case-sensitive search (Default is inSEnsITiVe).")
@@ -152,6 +152,8 @@ def scrapeRC():
152152
help="Display the EDB-ID value rather than local path.")
153153
parser.add_argument("--nmap", metavar="file.xml", nargs="?", type=argparse.FileType("r"), default=None, const=os.sys.stdin,
154154
help="Checks all results in Nmap's XML output with service version (e.g.: nmap -sV -oX file.xml).\nUse \"-v\" (verbose) to try even more combinations")
155+
parser.add_argument("--exclude", nargs="*", type=str, default=list(), metavar="[terms]",
156+
help="Remove certain terms from the results. Option best added after all other terms have been gathered.")
155157

156158
# Argument variable
157159
parseArgs = parser.parse_args()
@@ -338,6 +340,8 @@ def validTerm(argsList):
338340
"[-] Skipping term: " + argsList[i] + " (Term is too general. Please re-search manually:")
339341
argsList.pop(i)
340342
# Issues, return with something
343+
elif argsList[i].lower() in parseArgs.exclude:
344+
argsList.pop(i)
341345
elif not parseArgs.case:
342346
argsList[i] = argsList[i].lower()
343347
argsList.sort()
@@ -374,25 +378,31 @@ def searchdb(path="", terms=[], cols=[], lim=-1):
374378
db = dbFile.read().split('\n')
375379
for lines in db:
376380
if (lines != ""):
377-
for term in terms:
378-
if parseArgs.title:
379-
line = lines.split(",")[2]
380-
if parseArgs.case:
381-
if term not in line:
382-
break
383-
elif term not in line.lower():
384-
break
385-
elif parseArgs.case:
386-
if term not in lines:
387-
break
388-
elif term not in lines.lower():
381+
for ex in parseArgs.exclude:
382+
if parseArgs.case and ex in lines:
383+
break
384+
elif ex in lines.lower():
389385
break
390386
else:
391-
for i in cols:
392-
space = lines.split(",")
393-
tmphold.append(space[i])
394-
searchTerms.append(tmphold)
395-
tmphold = []
387+
for term in terms:
388+
if parseArgs.title:
389+
line = lines.split(",")[2]
390+
if parseArgs.case:
391+
if term not in line:
392+
break
393+
elif term not in line.lower():
394+
break
395+
elif parseArgs.case:
396+
if term not in lines:
397+
break
398+
elif term not in lines.lower():
399+
break
400+
else:
401+
for i in cols:
402+
space = lines.split(",")
403+
tmphold.append(space[i])
404+
searchTerms.append(tmphold)
405+
tmphold = []
396406
if(lim != -1 and len(searchTerms) >= lim):
397407
break
398408
dbFile.close()
@@ -699,6 +709,7 @@ def run():
699709
parser.print_help() # runs if given no arguements
700710
return
701711

712+
# DB Tools
702713
if parseArgs.mirror != None:
703714
mirror(parseArgs.mirror)
704715
return
@@ -711,7 +722,14 @@ def run():
711722
elif parseArgs.examine != None:
712723
examine(parseArgs.examine)
713724
return
714-
elif parseArgs.nmap != None:
725+
726+
# formatting exclusions
727+
if not parseArgs.case:
728+
for i in range(len(parseArgs.exclude)):
729+
parseArgs.exclude[i] = parseArgs.exclude[i].lower()
730+
731+
# Nmap tool
732+
if parseArgs.nmap != None:
715733
result = nmapxml(parseArgs.nmap)
716734
if not result:
717735
result = nmapgrep(parseArgs.nmap)

0 commit comments

Comments
 (0)