mirror of
https://github.com/Ekultek/Zeus-Scanner.git
synced 2026-03-11 08:55:51 +00:00
created three new tamper scripts and added warnings to other ones
This commit is contained in:
parent
c618647eeb
commit
d813942c55
2 changed files with 27 additions and 38 deletions
|
|
@ -5,16 +5,11 @@ try:
|
|||
except ImportError:
|
||||
import urllib.parse as urlparse # python 3
|
||||
import tempfile
|
||||
import importlib
|
||||
|
||||
import requests
|
||||
|
||||
from lib.errors import InvalidTamperProvided
|
||||
from lib.attacks.tamper_scripts import (
|
||||
unicode_encode,
|
||||
base64_encode,
|
||||
hex_encode,
|
||||
url_encode
|
||||
)
|
||||
from lib.settings import (
|
||||
logger,
|
||||
set_color,
|
||||
|
|
@ -22,23 +17,11 @@ from lib.settings import (
|
|||
proxy_string_to_dict,
|
||||
DBMS_ERRORS,
|
||||
create_tree,
|
||||
prompt
|
||||
prompt,
|
||||
shutdown
|
||||
)
|
||||
|
||||
|
||||
def __tamper_warnings(script):
|
||||
warn_msg = ""
|
||||
if script == "hex":
|
||||
warn_msg += "hex tamper script may increase risk of false positives..."
|
||||
elif script == " base64":
|
||||
warn_msg += "base64 tamper script may increase risk of not finding a vulnerability..."
|
||||
else:
|
||||
pass
|
||||
logger.warning(set_color(
|
||||
warn_msg, level=30
|
||||
))
|
||||
|
||||
|
||||
def list_tamper_scripts(path="{}/lib/attacks/tamper_scripts"):
|
||||
retval = set()
|
||||
exclude = ["__init__.py", ".pyc"]
|
||||
|
|
@ -50,23 +33,14 @@ def list_tamper_scripts(path="{}/lib/attacks/tamper_scripts"):
|
|||
return retval
|
||||
|
||||
|
||||
def __tamper_payload(payload, tamper_type):
|
||||
def __tamper_payload(payload, tamper_type, warning=True, **kwargs):
|
||||
acceptable = list_tamper_scripts()
|
||||
tamper_name = "lib.attacks.tamper_scripts.{}_encode"
|
||||
if tamper_type in acceptable:
|
||||
if tamper_type == "unicode":
|
||||
return unicode_encode.tamper(payload)
|
||||
elif tamper_type == "hex":
|
||||
return hex_encode.tamper(payload)
|
||||
elif tamper_type == "url":
|
||||
return url_encode.tamper(payload)
|
||||
else:
|
||||
return base64_encode.tamper(payload)
|
||||
tamper_script = importlib.import_module(tamper_name.format(tamper_type))
|
||||
return tamper_script.tamper(payload, warning=warning)
|
||||
else:
|
||||
raise InvalidTamperProvided(
|
||||
"sent tamper type '{}' is not a valid type, acceptable are {}...".format(
|
||||
tamper_type, ", ".join(list(acceptable))
|
||||
)
|
||||
)
|
||||
raise InvalidTamperProvided()
|
||||
|
||||
|
||||
def __load_payloads(filename="{}/etc/xss_payloads.txt"):
|
||||
|
|
@ -77,9 +51,20 @@ def create_urls(url, payload_list, tamper=None):
|
|||
tf = tempfile.NamedTemporaryFile(delete=False)
|
||||
tf_name = tf.name
|
||||
with tf as tmp:
|
||||
for payload in payload_list:
|
||||
for i, payload in enumerate(payload_list):
|
||||
if tamper:
|
||||
payload = __tamper_payload(payload, tamper_type=tamper)
|
||||
try:
|
||||
if i < 1:
|
||||
payload = __tamper_payload(payload, tamper_type=tamper, warning=True)
|
||||
else:
|
||||
payload = __tamper_payload(payload, tamper_type=tamper, warning=False)
|
||||
except InvalidTamperProvided:
|
||||
logger.error(set_color(
|
||||
"you provided and invalid tamper script, acceptable tamper scripts are: {}...".format(
|
||||
" | ".join(list_tamper_scripts()), level=40
|
||||
)
|
||||
))
|
||||
shutdown()
|
||||
loaded_url = "{}{}\n".format(url.strip(), payload.strip())
|
||||
tmp.write(loaded_url)
|
||||
return tf_name
|
||||
|
|
@ -114,7 +99,6 @@ def main_xss(start_url, verbose=False, proxy=None, agent=None, tamper=None):
|
|||
logger.info(set_color(
|
||||
"tampering payloads with '{}'...".format(tamper)
|
||||
))
|
||||
__tamper_warnings(tamper)
|
||||
find_xss_script(start_url)
|
||||
logger.info(set_color(
|
||||
"loading payloads..."
|
||||
|
|
@ -162,6 +146,11 @@ def main_xss(start_url, verbose=False, proxy=None, agent=None, tamper=None):
|
|||
url, result[1]
|
||||
), level=40
|
||||
))
|
||||
else:
|
||||
if verbose:
|
||||
logger.error(set_color(
|
||||
"SQL error discovered...", level=40
|
||||
))
|
||||
else:
|
||||
if verbose:
|
||||
logger.debug(set_color(
|
||||
|
|
|
|||
|
|
@ -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.25.fe911"
|
||||
VERSION = "1.0.26"
|
||||
# colors to output depending on the version
|
||||
VERSION_TYPE_COLORS = {"dev": 33, "stable": 92, "other": 30}
|
||||
# version string formatting
|
||||
|
|
|
|||
Loading…
Reference in a new issue