Skip to content

Commit 0e95e2f

Browse files
authored
Merge pull request #30 from codingo/codingo-fixed-stdin-wordlists
Fixed bug where wordlists would be always default without stdin
2 parents 2f3fdbc + ec7fe09 commit 0e95e2f

File tree

1 file changed

+19
-12
lines changed

1 file changed

+19
-12
lines changed

VHostScan.py

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def main():
1818
print_banner()
1919
parser = ArgumentParser()
2020
parser.add_argument("-t", dest="target_hosts", required=True, help="Set a target range of addresses to target. Ex 10.11.1.1-255" )
21-
parser.add_argument("-w", dest="wordlist", required=False, type=str, help="Set the wordlist to use (default ./wordlists/virtual-host-scanning.txt)")
21+
parser.add_argument("-w", dest="wordlist", required=False, type=str, help="Set the wordlist to use (default ./wordlists/virtual-host-scanning.txt)", default=False)
2222
parser.add_argument("-b", dest="base_host", required=False, help="Set host to be used during substitution in wordlist (default to TARGET).", default=False)
2323
parser.add_argument("-p", dest="port", required=False, help="Set the port to use (default 80).", default=80)
2424
parser.add_argument("-r", dest="real_port", required=False, help="The real port of the webserver to use in headers when not 80 (see RFC2616 14.23), useful when pivoting through ssh/nc etc (default to PORT).", default=False)
@@ -35,29 +35,36 @@ def main():
3535
wordlist = list()
3636

3737
if(arguments.stdin and not arguments.wordlist):
38-
input = list(line for line in sys.stdin.read().splitlines())
39-
wordlist.extend(input)
38+
wordlist.extend(list(line for line in sys.stdin.read().splitlines()))
4039
print("[+] Starting virtual host scan for %s using port %s and stdin data" % (arguments.target_hosts,
4140
str(arguments.port)))
4241
elif(arguments.stdin and arguments.wordlist):
4342
if not os.path.exists(arguments.wordlist):
43+
wordlist.extend(list(line for line in sys.stdin.read().splitlines()))
4444
print("[!] Wordlist %s doesn't exist and can't be appended to stdin." % arguments.wordlist)
4545
print("[+] Starting virtual host scan for %s using port %s and stdin data" % (arguments.target_hosts,
4646
str(arguments.port)))
4747
else:
48-
wordlist_file = open(arguments.wordlist).read().splitlines()
49-
wordlist.extend(wordlist_file)
48+
wordlist.extend(list(line for line in open(arguments.wordlist).read().splitlines()))
5049
print("[+] Starting virtual host scan for %s using port %s, stdin data, and wordlist %s" % (arguments.target_hosts,
5150
str(arguments.port),
5251
arguments.wordlist))
5352
else:
54-
# if no stdin, or wordlist pass, open default wordlist location
55-
wordlist_file = open("./wordlists/virtual-host-scanning.txt").read().splitlines()
56-
wordlist.extend(wordlist_file)
57-
print("[+] Starting virtual host scan for %s using port %s and wordlist %s" % (arguments.target_hosts,
58-
str(arguments.port),
59-
"./wordlists/virtual-host-scanning.txt"))
60-
53+
if not arguments.wordlist:
54+
wordlist.extend(list(line for line in open("./wordlists/virtual-host-scanning.txt").read().splitlines()))
55+
print("[+] Starting virtual host scan for %s using port %s and wordlist %s" % ( arguments.target_hosts,
56+
str(arguments.port),
57+
"./wordlists/virtual-host-scanning.txt"))
58+
else:
59+
if not os.path.exists(arguments.wordlist):
60+
print("[!] Wordlist %s doesn't exist, unable to scan." % arguments.wordlist)
61+
sys.exit()
62+
else:
63+
wordlist.extend(list(line for line in open(arguments.wordlist).read().splitlines()))
64+
print("[+] Starting virtual host scan for %s using port %s and wordlist %s" % ( arguments.target_hosts,
65+
str(arguments.port),
66+
str(arguments.wordlist)))
67+
6168
if(arguments.ssl):
6269
print("[>] SSL flag set, sending all results over HTTPS")
6370

0 commit comments

Comments
 (0)