mirror of
https://github.com/Ekultek/Zeus-Scanner.git
synced 2026-03-11 08:55:51 +00:00
successfully extracts the URL from Google ban URL (issue #13)
This commit is contained in:
parent
808adce7ab
commit
5767f2e974
2 changed files with 35 additions and 32 deletions
|
|
@ -22,7 +22,7 @@ except NameError:
|
|||
# clone link
|
||||
CLONE = "https://github.com/ekultek/zeus-scanner.git"
|
||||
# current version <major.minor.commit.patch ID>
|
||||
VERSION = "1.0.34"
|
||||
VERSION = "1.0.34.98ac"
|
||||
# colors to output depending on the version
|
||||
VERSION_TYPE_COLORS = {"dev": 33, "stable": 92, "other": 30}
|
||||
# version string formatting
|
||||
|
|
@ -51,6 +51,8 @@ DEFAULT_USER_AGENT = "Zeus-Scanner(v{})::Python->v{}.{}".format(
|
|||
URL_QUERY_REGEX = re.compile(r"(.*)[?|#](.*){1}\=(.*)")
|
||||
# regex to recognize a URL
|
||||
URL_REGEX = re.compile(r"((https?):((//)|(\\\\))+([\w\d:#@%/;$()~_?\+-=\\\.&](#!)?)*)")
|
||||
# URL's that are extracted from Google's ban URL
|
||||
EXTRACTED_URL_LOG = "{}/log/extracted-url-log".format(os.getcwd())
|
||||
# log path for the URL's that are found
|
||||
URL_LOG_PATH = "{}/log/url-log".format(os.getcwd())
|
||||
# log path for port scans
|
||||
|
|
|
|||
|
|
@ -29,7 +29,9 @@ from lib.settings import (
|
|||
shutdown,
|
||||
URL_LOG_PATH,
|
||||
write_to_log_file,
|
||||
get_proxy_type
|
||||
get_proxy_type,
|
||||
prompt,
|
||||
EXTRACTED_URL_LOG
|
||||
)
|
||||
|
||||
try:
|
||||
|
|
@ -38,37 +40,22 @@ except NameError:
|
|||
unicode = str
|
||||
|
||||
|
||||
def bypass_ip_block(url, content_sep=("continue=", "Fid", "%")):
|
||||
def bypass_ip_block(url):
|
||||
"""
|
||||
bypass Google's IP blocking by extracting the true URL from the ban URL.
|
||||
"""
|
||||
|
||||
def __add_https(data):
|
||||
if "https://" in data:
|
||||
return data
|
||||
else:
|
||||
return "https://{}".format(url.split("://")[-1])
|
||||
|
||||
if isinstance(url, unicode):
|
||||
url = str(url)
|
||||
content_list_start = []
|
||||
content_list_end = []
|
||||
if content_sep[0] in url:
|
||||
data_list = url.split(content_sep[0])
|
||||
url_to_use = data_list[1]
|
||||
else:
|
||||
url_to_use = url
|
||||
|
||||
for match in re.finditer(content_sep[1], url_to_use):
|
||||
content_list_start.append((match.start(), match.end()))
|
||||
splice_to_use = content_list_start[-1][-1]
|
||||
|
||||
for match in re.finditer(content_sep[2], url[0:splice_to_use]):
|
||||
content_list_end.append((match.start(), match.end()))
|
||||
try:
|
||||
return __add_https(url[0:content_list_end[-1][-1] - 1])
|
||||
except:
|
||||
return url
|
||||
url = unquote(url)
|
||||
constant_splitter = "continue="
|
||||
content_separators = ("Fid", "&gs_")
|
||||
to_use_separator = None
|
||||
retval = None
|
||||
url_data_list = url.split(constant_splitter)
|
||||
for item in url_data_list:
|
||||
for sep in content_separators:
|
||||
if sep in item:
|
||||
to_use_separator = sep
|
||||
retval = item.split(to_use_separator)[0]
|
||||
return unquote(retval)
|
||||
|
||||
|
||||
def extract_webcache_url(webcache_url, splitter="+"):
|
||||
|
|
@ -159,12 +146,26 @@ def get_urls(query, url, verbose=False, warning=True, user_agent=None, proxy=Non
|
|||
))
|
||||
try:
|
||||
retval = bypass_ip_block(retval)
|
||||
do_continue = prompt(
|
||||
"zeus was able to successfully extract the URL from Google's ban URL "
|
||||
"it is advised to shutdown zeus and attempt to extract the URL's manually. "
|
||||
"failing to do so will most likely result in no results being found by zeus. "
|
||||
"would you like to shutdown", opts="yN"
|
||||
)
|
||||
if not str(do_continue).lower().startswith("n"): # shutdown and write the URL to a file
|
||||
write_to_log_file(retval, EXTRACTED_URL_LOG, "extracted-url-{}.log")
|
||||
logger.info(set_color(
|
||||
"it is advised to use the built in blackwidow crawler with the extracted URL "
|
||||
"(IE -b '{}')".format(retval)
|
||||
))
|
||||
shutdown()
|
||||
except Exception as e:
|
||||
browser.close() # stop all the random rogue processes
|
||||
ff_display.stop()
|
||||
logger.exception(set_color(
|
||||
"zeus was unable to extract the correct URL from the ban URL '{}'...".format(
|
||||
unquote(retval)
|
||||
"zeus was unable to extract the correct URL from the ban URL '{}', "
|
||||
"got exception '{}'...".format(
|
||||
unquote(retval), e
|
||||
), level=50
|
||||
))
|
||||
request_issue_creation()
|
||||
|
|
|
|||
Loading…
Reference in a new issue