Skip to content

Commit

Permalink
Integrate black formatter (#200)
Browse files Browse the repository at this point in the history
* add black check
* ignore black for 3.4 and 3.5
* black formatting
  • Loading branch information
xmendez committed Jun 4, 2020
1 parent d10b41e commit 2747be9
Show file tree
Hide file tree
Showing 110 changed files with 4,206 additions and 1,835 deletions.
4 changes: 4 additions & 0 deletions .flake8
@@ -0,0 +1,4 @@
[flake8]
max-line-length = 80
select = C,E,F,W,B,B950
ignore = E203, E501, W503, E402, F401, W504
5 changes: 4 additions & 1 deletion .travis.yml
Expand Up @@ -16,11 +16,14 @@ install:
- pip install netaddr
- pip install flake8
- pip install codecov
- if [[ $TRAVIS_PYTHON_VERSION != '3.4' && $TRAVIS_PYTHON_VERSION != '3.5' ]]; then pip install black; fi
- python setup.py install
script:
- flake8 --ignore=E501,E402,F401,W504 src tests
-
- flake8 src tests
- coverage run --append -m unittest discover -v -s tests/
- if [[ $TRAVIS_PYTHON_VERSION == '3.6' && $TRAVIS_BRANCH == 'master' ]]; then codecov; fi
- if [[ $TRAVIS_PYTHON_VERSION != '3.4' && $TRAVIS_PYTHON_VERSION != '3.5' ]]; then black --check src tests; fi
deploy:
provider: pypi
user: x4vi_mendez
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Expand Up @@ -4,7 +4,7 @@ test:
tox --recreate
flake8:
pip install flake8
flake8 --ignore=E501,E402,F401,W504 src tests
flake8 src tests
publish:
pip install 'twine>=1.5.0'
python setup.py sdist
Expand Down
2 changes: 1 addition & 1 deletion src/wfencode.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python
from wfuzz.wfuzz import main_encoder

if __name__ == '__main__':
if __name__ == "__main__":
main_encoder()
2 changes: 1 addition & 1 deletion src/wfpayload.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python
from wfuzz.wfuzz import main_filter

if __name__ == '__main__':
if __name__ == "__main__":
main_filter()
2 changes: 1 addition & 1 deletion src/wfuzz-cli.py
Expand Up @@ -2,5 +2,5 @@

from wfuzz.wfuzz import main

if __name__ == '__main__':
if __name__ == "__main__":
main()
30 changes: 19 additions & 11 deletions src/wfuzz/__init__.py
@@ -1,9 +1,9 @@
__title__ = 'wfuzz'
__title__ = "wfuzz"
__version__ = "3.0.0"
__build__ = 0x023000
__author__ = 'Xavier Mendez'
__license__ = 'GPL 2.0'
__copyright__ = 'Copyright 2011-2018 Xavier Mendez'
__author__ = "Xavier Mendez"
__license__ = "GPL 2.0"
__copyright__ = "Copyright 2011-2018 Xavier Mendez"

import logging
import sys
Expand All @@ -14,14 +14,14 @@
# define a logging Handler
console = logging.StreamHandler()
console.setLevel(logging.WARNING)
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
formatter = logging.Formatter("%(name)-12s: %(levelname)-8s %(message)s")
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
logging.getLogger("").addHandler(console)


# define warnings format
def warning_on_one_line(message, category, filename, lineno, file=None, line=None):
return ' %s:%s: %s:%s\n' % (filename, lineno, category.__name__, message)
return " %s:%s: %s:%s\n" % (filename, lineno, category.__name__, message)


warnings.formatwarning = warning_on_one_line
Expand All @@ -31,16 +31,24 @@ def warning_on_one_line(message, category, filename, lineno, file=None, line=Non
import pycurl

if "openssl".lower() not in pycurl.version.lower():
warnings.warn("Pycurl is not compiled against Openssl. Wfuzz might not work correctly when fuzzing SSL sites. Check Wfuzz's documentation for more information.")
warnings.warn(
"Pycurl is not compiled against Openssl. Wfuzz might not work correctly when fuzzing SSL sites. Check Wfuzz's documentation for more information."
)

if not hasattr(pycurl, "CONNECT_TO"):
warnings.warn("Pycurl and/or libcurl version is old. CONNECT_TO option is missing. Wfuzz --ip option will not be available.")
warnings.warn(
"Pycurl and/or libcurl version is old. CONNECT_TO option is missing. Wfuzz --ip option will not be available."
)

if not hasattr(pycurl, "PATH_AS_IS"):
warnings.warn("Pycurl and/or libcurl version is old. PATH_AS_IS option is missing. Wfuzz might not correctly fuzz URLS with '..'.")
warnings.warn(
"Pycurl and/or libcurl version is old. PATH_AS_IS option is missing. Wfuzz might not correctly fuzz URLS with '..'."
)

except ImportError:
warnings.warn("fuzz needs pycurl to run. Pycurl could be installed using the following command: $ pip install pycurl")
warnings.warn(
"fuzz needs pycurl to run. Pycurl could be installed using the following command: $ pip install pycurl"
)

sys.exit(1)

Expand Down
4 changes: 2 additions & 2 deletions src/wfuzz/api.py
Expand Up @@ -2,9 +2,9 @@
from .facade import Facade
from .ui.console.clparser import CLParser

'''
"""
Wfuzz API
'''
"""


def fuzz(**kwargs):
Expand Down
37 changes: 24 additions & 13 deletions src/wfuzz/core.py
Expand Up @@ -16,7 +16,7 @@
AllVarQ,
CLIPrinterQ,
ConsolePrinterQ,
PassPayloadQ
PassPayloadQ,
)


Expand All @@ -38,9 +38,11 @@ def __init__(self, options):
else:
self.qmanager.add("seed_queue", SeedQ(options))

for prefilter_idx, prefilter in enumerate(options.get('compiled_prefilter')):
for prefilter_idx, prefilter in enumerate(options.get("compiled_prefilter")):
if prefilter.is_active():
self.qmanager.add("slice_queue_{}".format(prefilter_idx), SliceQ(options, prefilter))
self.qmanager.add(
"slice_queue_{}".format(prefilter_idx), SliceQ(options, prefilter)
)

if options.get("transport") == "dryrun":
self.qmanager.add("transport_queue", DryRunQ(options))
Expand All @@ -60,25 +62,30 @@ def __init__(self, options):
options,
{
FuzzType.SEED: self.qmanager["seed_queue"],
FuzzType.BACKFEED: self.qmanager["transport_queue"]
}
FuzzType.BACKFEED: self.qmanager["transport_queue"],
},
)

self.qmanager.add("routing_queue", rq)

if options.get('compiled_filter').is_active():
self.qmanager.add("filter_queue", FilterQ(options, options["compiled_filter"]))
if options.get("compiled_filter").is_active():
self.qmanager.add(
"filter_queue", FilterQ(options, options["compiled_filter"])
)

if options.get('compiled_simple_filter').is_active():
self.qmanager.add("simple_filter_queue", FilterQ(options, options["compiled_simple_filter"]))
if options.get("compiled_simple_filter").is_active():
self.qmanager.add(
"simple_filter_queue",
FilterQ(options, options["compiled_simple_filter"]),
)

if options.get('save'):
if options.get("save"):
self.qmanager.add("save_queue", SaveQ(options))

if options.get('compiled_printer'):
if options.get("compiled_printer"):
self.qmanager.add("printer_queue", PrinterQ(options))

if options.get('exec_mode') == "cli":
if options.get("exec_mode") == "cli":
if options["console_printer"]:
self.qmanager.add("printer_cli", ConsolePrinterQ(options))
else:
Expand Down Expand Up @@ -106,7 +113,11 @@ def __next__(self):
return res

def stats(self):
return dict(list(self.qmanager.get_stats().items()) + list(self.qmanager["transport_queue"].job_stats().items()) + list(self.options.stats.get_stats().items()))
return dict(
list(self.qmanager.get_stats().items())
+ list(self.qmanager["transport_queue"].job_stats().items())
+ list(self.options.stats.get_stats().items())
)

def cancel_job(self):
self.qmanager.cancel()
Expand Down
15 changes: 9 additions & 6 deletions src/wfuzz/dictionaries.py
@@ -1,6 +1,4 @@
from .exception import (
FuzzExceptNoPluginError
)
from .exception import FuzzExceptNoPluginError
from .facade import Facade
from .filters.ppfilter import FuzzResFilterSlice
from .fuzzobjects import FuzzWord, FuzzWordType
Expand Down Expand Up @@ -57,10 +55,15 @@ def concatenate(self, encoder_name, payload_word):
def encode(self, encoder_name, payload_word):
plugin_list = Facade().encoders.get_plugins(encoder_name)
if not plugin_list:
raise FuzzExceptNoPluginError(encoder_name + " encoder does not exists (-e encodings for a list of available encoders)")
raise FuzzExceptNoPluginError(
encoder_name
+ " encoder does not exists (-e encodings for a list of available encoders)"
)

for plugin_class in plugin_list:
yield FuzzWord(plugin_class().encode(payload_word.content), FuzzWordType.WORD)
yield FuzzWord(
plugin_class().encode(payload_word.content), FuzzWordType.WORD
)

def next_word(self):
return next(self.__generator)
Expand All @@ -73,7 +76,7 @@ def _gen(self):
return

for encoder_name in self.encoders:
if encoder_name.find('@') > 0:
if encoder_name.find("@") > 0:
yield self.concatenate(encoder_name, payload_word)
else:
for string in self.encode(encoder_name, payload_word):
Expand Down
2 changes: 0 additions & 2 deletions src/wfuzz/exception.py
@@ -1,5 +1,3 @@


class FuzzException(Exception):
pass

Expand Down
38 changes: 23 additions & 15 deletions src/wfuzz/externals/moduleman/loader.py
Expand Up @@ -28,7 +28,7 @@ def set_params(self, **params):

self.filename = params["filename"]
self.base_path = params["base_path"]
if self.base_path.endswith('/'):
if self.base_path.endswith("/"):
self.base_path = self.base_path[:-1]

def load(self, registrant):
Expand All @@ -40,8 +40,8 @@ def _build_id(self, filename, objname):
filepath, filename = os.path.split(filename)

relative_path = os.path.relpath(filepath, self.base_path)
identifier = relative_path + '/' + objname
if identifier.startswith('./'):
identifier = relative_path + "/" + objname
if identifier.startswith("./"):
identifier = identifier[2:]

return identifier
Expand All @@ -50,7 +50,7 @@ def _load_py_from_file(self, filename):
"""
Opens "filename", inspects it and calls the registrant
"""
self.__logger.debug('__load_py_from_file. START, file=%s' % (filename,))
self.__logger.debug("__load_py_from_file. START, file=%s" % (filename,))

dirname, filename = os.path.split(filename)
fn = os.path.splitext(filename)[0]
Expand All @@ -61,12 +61,16 @@ def _load_py_from_file(self, filename):
exten_file, filename, description = imp.find_module(fn, [dirname])
module = imp.load_module(fn, exten_file, filename, description)
except ImportError as msg:
self.__logger.critical('__load_py_from_file. Filename: %s Exception, msg=%s' % (filename, msg))
self.__logger.critical(
"__load_py_from_file. Filename: %s Exception, msg=%s" % (filename, msg)
)
# raise msg
pass
except SyntaxError as msg:
# incorrect python syntax in file
self.__logger.critical('__load_py_from_file. Filename: %s Exception, msg=%s' % (filename, msg))
self.__logger.critical(
"__load_py_from_file. Filename: %s Exception, msg=%s" % (filename, msg)
)
# raise msg
pass
finally:
Expand All @@ -78,13 +82,15 @@ def _load_py_from_file(self, filename):

for objname in dir(module):
obj = getattr(module, objname)
self.__logger.debug('__load_py_from_file. inspecting=%s' % (objname,))
self.__logger.debug("__load_py_from_file. inspecting=%s" % (objname,))
if inspect.isclass(obj):
if '__PLUGIN_MODULEMAN_MARK' in dir(obj):
if "__PLUGIN_MODULEMAN_MARK" in dir(obj):
if self.module_registrant:
self.module_registrant.register(self._build_id(filename, objname), obj)
self.module_registrant.register(
self._build_id(filename, objname), obj
)

self.__logger.debug('__load_py_from_file. END, loaded file=%s' % (filename,))
self.__logger.debug("__load_py_from_file. END, loaded file=%s" % (filename,))


class DirLoader(FileLoader):
Expand All @@ -100,7 +106,7 @@ def set_params(self, **params):

self.base_dir = params["base_dir"]
self.base_path = params["base_path"]
if self.base_path.endswith('/'):
if self.base_path.endswith("/"):
self.base_path = self.base_path[:-1]

def load(self, registrant):
Expand All @@ -110,9 +116,11 @@ def load(self, registrant):
def _build_id(self, filename, objname):
filepath, filename = os.path.split(filename)

relative_path = os.path.relpath(filepath, os.path.join(self.base_path, self.base_dir))
identifier = relative_path + '/' + objname
if identifier.startswith('./'):
relative_path = os.path.relpath(
filepath, os.path.join(self.base_path, self.base_dir)
)
identifier = relative_path + "/" + objname
if identifier.startswith("./"):
identifier = identifier[2:]

return identifier
Expand All @@ -136,7 +144,7 @@ def __load_all(self, dir_name):
def __walk_dir_tree(self, dirname):
dir_list = []

self.__logger.debug('__walk_dir_tree. START dir=%s', dirname)
self.__logger.debug("__walk_dir_tree. START dir=%s", dirname)

for f in os.listdir(dirname):
current = os.path.join(dirname, f)
Expand Down

0 comments on commit 2747be9

Please sign in to comment.