diff options
Diffstat (limited to 'testing/sqlmap/reduce-amount-of-third-party-dependencies.patch')
-rw-r--r-- | testing/sqlmap/reduce-amount-of-third-party-dependencies.patch | 897 |
1 files changed, 897 insertions, 0 deletions
diff --git a/testing/sqlmap/reduce-amount-of-third-party-dependencies.patch b/testing/sqlmap/reduce-amount-of-third-party-dependencies.patch new file mode 100644 index 00000000000..bf0ff7adba8 --- /dev/null +++ b/testing/sqlmap/reduce-amount-of-third-party-dependencies.patch @@ -0,0 +1,897 @@ +From e76995bd6a15acee16481d39585ddc3018a6d7af Mon Sep 17 00:00:00 2001 +From: Maxim Karasev <begs@disroot.org> +Date: Sat, 6 Aug 2022 20:44:51 +0300 +Subject: [PATCH] reduce amount of third party dependencies + +--- + lib/controller/checks.py | 4 ++-- + lib/core/agent.py | 2 +- + lib/core/common.py | 26 ++++++++++++------------- + lib/core/convert.py | 6 +++--- + lib/core/datatype.py | 4 ++-- + lib/core/dump.py | 4 ++-- + lib/core/gui.py | 10 +++++----- + lib/core/option.py | 12 ++++++------ + lib/core/patch.py | 8 ++++---- + lib/core/settings.py | 4 ++-- + lib/core/target.py | 6 +++--- + lib/core/update.py | 2 +- + lib/core/wordlist.py | 2 +- + lib/parse/cmdline.py | 2 +- + lib/parse/sitemap.py | 2 +- + lib/request/basic.py | 10 +++++----- + lib/request/basicauthhandler.py | 2 +- + lib/request/chunkedhandler.py | 2 +- + lib/request/comparison.py | 2 +- + lib/request/connect.py | 10 +++++----- + lib/request/httpshandler.py | 4 ++-- + lib/request/inject.py | 2 +- + lib/request/methodrequest.py | 2 +- + lib/request/pkihandler.py | 4 ++-- + lib/request/rangehandler.py | 2 +- + lib/request/redirecthandler.py | 4 ++-- + lib/takeover/abstraction.py | 2 +- + lib/takeover/metasploit.py | 2 +- + lib/takeover/web.py | 2 +- + lib/techniques/error/use.py | 2 +- + lib/techniques/union/use.py | 4 ++-- + lib/utils/api.py | 24 +++++++++++------------ + lib/utils/crawler.py | 8 ++++---- + lib/utils/har.py | 4 ++-- + lib/utils/hash.py | 10 +++++----- + lib/utils/hashdb.py | 2 +- + lib/utils/httpd.py | 10 +++++----- + lib/utils/pivotdumptable.py | 2 +- + lib/utils/purge.py | 2 +- + lib/utils/search.py | 4 ++-- + lib/utils/sqlalchemy.py | 2 +- + plugins/dbms/maxdb/enumeration.py | 4 ++-- + plugins/dbms/mssqlserver/enumeration.py | 2 +- + plugins/dbms/sybase/enumeration.py | 4 ++-- + plugins/generic/custom.py | 2 +- + plugins/generic/databases.py | 2 +- + plugins/generic/entries.py | 4 ++-- + plugins/generic/search.py | 2 +- + plugins/generic/users.py | 2 +- + thirdparty/multipart/multipartpost.py | 2 +- + 50 files changed, 121 insertions(+), 121 deletions(-) + +diff --git a/lib/controller/checks.py b/lib/controller/checks.py +index b0d5fd6..71e0b29 100644 +--- a/lib/controller/checks.py ++++ b/lib/controller/checks.py +@@ -102,8 +102,8 @@ from lib.request.inject import checkBooleanExpression + from lib.request.templates import getPageTemplate + from lib.techniques.union.test import unionTest + from lib.techniques.union.use import configUnion +-from thirdparty import six +-from thirdparty.six.moves import http_client as _http_client ++import six ++from six.moves import http_client as _http_client + + def checkSqlInjection(place, parameter, value): + # Store here the details about boundaries and payload used to +diff --git a/lib/core/agent.py b/lib/core/agent.py +index 539183e..992ee10 100644 +--- a/lib/core/agent.py ++++ b/lib/core/agent.py +@@ -57,7 +57,7 @@ from lib.core.settings import SINGLE_QUOTE_MARKER + from lib.core.settings import SLEEP_TIME_MARKER + from lib.core.settings import UNICODE_ENCODING + from lib.core.unescaper import unescaper +-from thirdparty import six ++import six + + class Agent(object): + """ +diff --git a/lib/core/common.py b/lib/core/common.py +index 7dd6dbb..015cd2b 100644 +--- a/lib/core/common.py ++++ b/lib/core/common.py +@@ -187,21 +187,21 @@ from lib.core.settings import WEBSCARAB_SPLITTER + from lib.core.threads import getCurrentThreadData + from lib.utils.safe2bin import safecharencode + from lib.utils.sqlalchemy import _sqlalchemy +-from thirdparty import six ++import six + from thirdparty.clientform.clientform import ParseResponse + from thirdparty.clientform.clientform import ParseError +-from thirdparty.colorama.initialise import init as coloramainit +-from thirdparty.magic import magic +-from thirdparty.odict import OrderedDict +-from thirdparty.six import unichr as _unichr +-from thirdparty.six.moves import collections_abc as _collections +-from thirdparty.six.moves import configparser as _configparser +-from thirdparty.six.moves import http_client as _http_client +-from thirdparty.six.moves import input as _input +-from thirdparty.six.moves import reload_module as _reload_module +-from thirdparty.six.moves import urllib as _urllib +-from thirdparty.six.moves import zip as _zip +-from thirdparty.termcolor.termcolor import colored ++from colorama.initialise import init as coloramainit ++import magic ++from collections import OrderedDict ++from six import unichr as _unichr ++from six.moves import collections_abc as _collections ++from six.moves import configparser as _configparser ++from six.moves import http_client as _http_client ++from six.moves import input as _input ++from six.moves import reload_module as _reload_module ++from six.moves import urllib as _urllib ++from six.moves import zip as _zip ++from termcolor import colored + + class UnicodeRawConfigParser(_configparser.RawConfigParser): + """ +diff --git a/lib/core/convert.py b/lib/core/convert.py +index c6f86aa..a1fa5eb 100644 +--- a/lib/core/convert.py ++++ b/lib/core/convert.py +@@ -28,9 +28,9 @@ from lib.core.settings import NULL + from lib.core.settings import PICKLE_PROTOCOL + from lib.core.settings import SAFE_HEX_MARKER + from lib.core.settings import UNICODE_ENCODING +-from thirdparty import six +-from thirdparty.six import unichr as _unichr +-from thirdparty.six.moves import collections_abc as _collections ++import six ++from six import unichr as _unichr ++from six.moves import collections_abc as _collections + + try: + from html import escape as htmlEscape +diff --git a/lib/core/datatype.py b/lib/core/datatype.py +index eadcb9c..1fdbf11 100644 +--- a/lib/core/datatype.py ++++ b/lib/core/datatype.py +@@ -8,8 +8,8 @@ See the file 'LICENSE' for copying permission + import copy + import types + +-from thirdparty.odict import OrderedDict +-from thirdparty.six.moves import collections_abc as _collections ++from collections import OrderedDict ++from six.moves import collections_abc as _collections + + class AttribDict(dict): + """ +diff --git a/lib/core/dump.py b/lib/core/dump.py +index 2e3cdfd..8b1b1f7 100644 +--- a/lib/core/dump.py ++++ b/lib/core/dump.py +@@ -56,8 +56,8 @@ from lib.core.settings import UNSAFE_DUMP_FILEPATH_REPLACEMENT + from lib.core.settings import VERSION_STRING + from lib.core.settings import WINDOWS_RESERVED_NAMES + from lib.utils.safe2bin import safechardecode +-from thirdparty import six +-from thirdparty.magic import magic ++import six ++import magic + + class Dump(object): + """ +diff --git a/lib/core/gui.py b/lib/core/gui.py +index fa6f269..eb7160c 100644 +--- a/lib/core/gui.py ++++ b/lib/core/gui.py +@@ -28,7 +28,7 @@ from lib.core.settings import GIT_PAGE + from lib.core.settings import SITE + from lib.core.settings import VERSION_STRING + from lib.core.settings import WIKI_PAGE +-from thirdparty.six.moves import queue as _queue ++from six.moves import queue as _queue + + alive = None + line = "" +@@ -37,10 +37,10 @@ queue = None + + def runGui(parser): + try: +- from thirdparty.six.moves import tkinter as _tkinter +- from thirdparty.six.moves import tkinter_scrolledtext as _tkinter_scrolledtext +- from thirdparty.six.moves import tkinter_ttk as _tkinter_ttk +- from thirdparty.six.moves import tkinter_messagebox as _tkinter_messagebox ++ from six.moves import tkinter as _tkinter ++ from six.moves import tkinter_scrolledtext as _tkinter_scrolledtext ++ from six.moves import tkinter_ttk as _tkinter_ttk ++ from six.moves import tkinter_messagebox as _tkinter_messagebox + except ImportError as ex: + raise SqlmapMissingDependence("missing dependence ('%s')" % getSafeExString(ex)) + +diff --git a/lib/core/option.py b/lib/core/option.py +index 7fc2116..5fc9ae3 100644 +--- a/lib/core/option.py ++++ b/lib/core/option.py +@@ -151,13 +151,13 @@ from lib.utils.deps import checkDependencies + from lib.utils.har import HTTPCollectorFactory + from lib.utils.purge import purge + from lib.utils.search import search +-from thirdparty import six +-from thirdparty.keepalive import keepalive ++import six ++import keepalive + from thirdparty.multipart import multipartpost +-from thirdparty.six.moves import collections_abc as _collections +-from thirdparty.six.moves import http_client as _http_client +-from thirdparty.six.moves import http_cookiejar as _http_cookiejar +-from thirdparty.six.moves import urllib as _urllib ++from six.moves import collections_abc as _collections ++from six.moves import http_client as _http_client ++from six.moves import http_cookiejar as _http_cookiejar ++from six.moves import urllib as _urllib + from thirdparty.socks import socks + from xml.etree.ElementTree import ElementTree + +diff --git a/lib/core/patch.py b/lib/core/patch.py +index 9136b70..c72b1a2 100644 +--- a/lib/core/patch.py ++++ b/lib/core/patch.py +@@ -22,7 +22,7 @@ import lib.request.connect + import lib.utils.search + import lib.utils.sqlalchemy + import thirdparty.ansistrm.ansistrm +-import thirdparty.chardet.universaldetector ++import chardet.universaldetector + + from lib.core.common import filterNone + from lib.core.common import getSafeExString +@@ -39,8 +39,8 @@ from lib.core.option import _setHTTPHandlers + from lib.core.option import setVerbosity + from lib.core.settings import IS_WIN + from lib.request.templates import getPageTemplate +-from thirdparty import six +-from thirdparty.six.moves import http_client as _http_client ++import six ++from six.moves import http_client as _http_client + + _rand = 0 + +@@ -80,7 +80,7 @@ def dirtyPatches(): + _http_client.LineAndFileWrapper.readline = _ + + # to prevent too much "guessing" in case of binary data retrieval +- thirdparty.chardet.universaldetector.MINIMUM_THRESHOLD = 0.90 ++ chardet.universaldetector.MINIMUM_THRESHOLD = 0.90 + + match = re.search(r" --method[= ](\w+)", " ".join(sys.argv)) + if match and match.group(1).upper() != PLACE.POST: +diff --git a/lib/core/settings.py b/lib/core/settings.py +index b8dbda3..32385bc 100644 +--- a/lib/core/settings.py ++++ b/lib/core/settings.py +@@ -16,8 +16,8 @@ import time + from lib.core.enums import DBMS + from lib.core.enums import DBMS_DIRECTORY_NAME + from lib.core.enums import OS +-from thirdparty import six +-from thirdparty.six import unichr as _unichr ++import six ++from six import unichr as _unichr + + # sqlmap version (<major>.<minor>.<month>.<monthly commit>) + VERSION = "1.7.9" +diff --git a/lib/core/target.py b/lib/core/target.py +index 480886a..a03151d 100644 +--- a/lib/core/target.py ++++ b/lib/core/target.py +@@ -78,9 +78,9 @@ from lib.core.settings import USER_AGENT_ALIASES + from lib.core.settings import XML_RECOGNITION_REGEX + from lib.core.threads import getCurrentThreadData + from lib.utils.hashdb import HashDB +-from thirdparty import six +-from thirdparty.odict import OrderedDict +-from thirdparty.six.moves import urllib as _urllib ++import six ++from collections import OrderedDict ++from six.moves import urllib as _urllib + + def _setRequestParams(): + """ +diff --git a/lib/core/update.py b/lib/core/update.py +index 2fe6f12..b80407d 100644 +--- a/lib/core/update.py ++++ b/lib/core/update.py +@@ -30,7 +30,7 @@ from lib.core.settings import IS_WIN + from lib.core.settings import VERSION + from lib.core.settings import TYPE + from lib.core.settings import ZIPBALL_PAGE +-from thirdparty.six.moves import urllib as _urllib ++from six.moves import urllib as _urllib + + def update(): + if not conf.updateAll: +diff --git a/lib/core/wordlist.py b/lib/core/wordlist.py +index 781642b..f9d647d 100644 +--- a/lib/core/wordlist.py ++++ b/lib/core/wordlist.py +@@ -11,7 +11,7 @@ from lib.core.common import getSafeExString + from lib.core.common import isZipFile + from lib.core.exception import SqlmapDataException + from lib.core.exception import SqlmapInstallationException +-from thirdparty import six ++import six + + class Wordlist(six.Iterator): + """ +diff --git a/lib/parse/cmdline.py b/lib/parse/cmdline.py +index e16e822..cb8d338 100644 +--- a/lib/parse/cmdline.py ++++ b/lib/parse/cmdline.py +@@ -92,7 +92,7 @@ from lib.core.shell import autoCompletion + from lib.core.shell import clearHistory + from lib.core.shell import loadHistory + from lib.core.shell import saveHistory +-from thirdparty.six.moves import input as _input ++from six.moves import input as _input + + def cmdLineParser(argv=None): + """ +diff --git a/lib/parse/sitemap.py b/lib/parse/sitemap.py +index db2f090..3682fc7 100644 +--- a/lib/parse/sitemap.py ++++ b/lib/parse/sitemap.py +@@ -13,7 +13,7 @@ from lib.core.data import logger + from lib.core.datatype import OrderedSet + from lib.core.exception import SqlmapSyntaxException + from lib.request.connect import Connect as Request +-from thirdparty.six.moves import http_client as _http_client ++from six.moves import http_client as _http_client + + abortedFlag = None + +diff --git a/lib/request/basic.py b/lib/request/basic.py +index c00fd0d..403c72e 100644 +--- a/lib/request/basic.py ++++ b/lib/request/basic.py +@@ -54,12 +54,12 @@ from lib.core.settings import UNICODE_ENCODING + from lib.core.settings import VIEWSTATE_REGEX + from lib.parse.headers import headersParser + from lib.parse.html import htmlParser +-from thirdparty import six +-from thirdparty.chardet import detect ++import six ++from chardet import detect + from thirdparty.identywaf import identYwaf +-from thirdparty.odict import OrderedDict +-from thirdparty.six import unichr as _unichr +-from thirdparty.six.moves import http_client as _http_client ++from collections import OrderedDict ++from six import unichr as _unichr ++from six.moves import http_client as _http_client + + @lockedmethod + def forgeHeaders(items=None, base=None): +diff --git a/lib/request/basicauthhandler.py b/lib/request/basicauthhandler.py +index f7c8408..472e7a2 100644 +--- a/lib/request/basicauthhandler.py ++++ b/lib/request/basicauthhandler.py +@@ -5,7 +5,7 @@ Copyright (c) 2006-2023 sqlmap developers (https://sqlmap.org/) + See the file 'LICENSE' for copying permission + """ + +-from thirdparty.six.moves import urllib as _urllib ++from six.moves import urllib as _urllib + + class SmartHTTPBasicAuthHandler(_urllib.request.HTTPBasicAuthHandler): + """ +diff --git a/lib/request/chunkedhandler.py b/lib/request/chunkedhandler.py +index b275993..4081eae 100644 +--- a/lib/request/chunkedhandler.py ++++ b/lib/request/chunkedhandler.py +@@ -7,7 +7,7 @@ See the file 'LICENSE' for copying permission + + from lib.core.data import conf + from lib.core.enums import HTTP_HEADER +-from thirdparty.six.moves import urllib as _urllib ++from six.moves import urllib as _urllib + + class ChunkedHandler(_urllib.request.HTTPHandler): + """ +diff --git a/lib/request/comparison.py b/lib/request/comparison.py +index c703b2b..6a5763b 100644 +--- a/lib/request/comparison.py ++++ b/lib/request/comparison.py +@@ -32,7 +32,7 @@ from lib.core.settings import REFLECTED_VALUE_MARKER + from lib.core.settings import UPPER_RATIO_BOUND + from lib.core.settings import URI_HTTP_HEADER + from lib.core.threads import getCurrentThreadData +-from thirdparty import six ++import six + + def comparison(page, headers, code=None, getRatioValue=False, pageLength=None): + _ = _adjust(_comparison(page, headers, code, getRatioValue, pageLength), getRatioValue) +diff --git a/lib/request/connect.py b/lib/request/connect.py +index 2f7cbfc..a39ac0f 100644 +--- a/lib/request/connect.py ++++ b/lib/request/connect.py +@@ -136,11 +136,11 @@ from lib.request.comparison import comparison + from lib.request.direct import direct + from lib.request.methodrequest import MethodRequest + from lib.utils.safe2bin import safecharencode +-from thirdparty import six +-from thirdparty.odict import OrderedDict +-from thirdparty.six import unichr as _unichr +-from thirdparty.six.moves import http_client as _http_client +-from thirdparty.six.moves import urllib as _urllib ++import six ++from collections import OrderedDict ++from six import unichr as _unichr ++from six.moves import http_client as _http_client ++from six.moves import urllib as _urllib + from thirdparty.socks.socks import ProxyError + + class Connect(object): +diff --git a/lib/request/httpshandler.py b/lib/request/httpshandler.py +index 03c4079..ae06372 100644 +--- a/lib/request/httpshandler.py ++++ b/lib/request/httpshandler.py +@@ -17,8 +17,8 @@ from lib.core.data import kb + from lib.core.data import logger + from lib.core.exception import SqlmapConnectionException + from lib.core.settings import PYVERSION +-from thirdparty.six.moves import http_client as _http_client +-from thirdparty.six.moves import urllib as _urllib ++from six.moves import http_client as _http_client ++from six.moves import urllib as _urllib + + ssl = None + try: +diff --git a/lib/request/inject.py b/lib/request/inject.py +index 039ef1b..7e53fb0 100644 +--- a/lib/request/inject.py ++++ b/lib/request/inject.py +@@ -66,7 +66,7 @@ from lib.techniques.dns.test import dnsTest + from lib.techniques.dns.use import dnsUse + from lib.techniques.error.use import errorUse + from lib.techniques.union.use import unionUse +-from thirdparty import six ++import six + + def _goDns(payload, expression): + value = None +diff --git a/lib/request/methodrequest.py b/lib/request/methodrequest.py +index 8535557..5188dd3 100644 +--- a/lib/request/methodrequest.py ++++ b/lib/request/methodrequest.py +@@ -6,7 +6,7 @@ See the file 'LICENSE' for copying permission + """ + + from lib.core.convert import getText +-from thirdparty.six.moves import urllib as _urllib ++from six.moves import urllib as _urllib + + class MethodRequest(_urllib.request.Request): + """ +diff --git a/lib/request/pkihandler.py b/lib/request/pkihandler.py +index 05a6ccf..9bf4cb3 100644 +--- a/lib/request/pkihandler.py ++++ b/lib/request/pkihandler.py +@@ -8,8 +8,8 @@ See the file 'LICENSE' for copying permission + from lib.core.data import conf + from lib.core.common import getSafeExString + from lib.core.exception import SqlmapConnectionException +-from thirdparty.six.moves import http_client as _http_client +-from thirdparty.six.moves import urllib as _urllib ++from six.moves import http_client as _http_client ++from six.moves import urllib as _urllib + + class HTTPSPKIAuthHandler(_urllib.request.HTTPSHandler): + def __init__(self, auth_file): +diff --git a/lib/request/rangehandler.py b/lib/request/rangehandler.py +index ff0598c..57b2101 100644 +--- a/lib/request/rangehandler.py ++++ b/lib/request/rangehandler.py +@@ -6,7 +6,7 @@ See the file 'LICENSE' for copying permission + """ + + from lib.core.exception import SqlmapConnectionException +-from thirdparty.six.moves import urllib as _urllib ++from six.moves import urllib as _urllib + + class HTTPRangeHandler(_urllib.request.BaseHandler): + """ +diff --git a/lib/request/redirecthandler.py b/lib/request/redirecthandler.py +index a305906..a43a685 100644 +--- a/lib/request/redirecthandler.py ++++ b/lib/request/redirecthandler.py +@@ -31,8 +31,8 @@ from lib.core.settings import MAX_TOTAL_REDIRECTIONS + from lib.core.threads import getCurrentThreadData + from lib.request.basic import decodePage + from lib.request.basic import parseResponse +-from thirdparty import six +-from thirdparty.six.moves import urllib as _urllib ++import six ++from six.moves import urllib as _urllib + + class SmartRedirectHandler(_urllib.request.HTTPRedirectHandler): + def _get_header_redirect(self, headers): +diff --git a/lib/takeover/abstraction.py b/lib/takeover/abstraction.py +index 52f43dd..51aab06 100644 +--- a/lib/takeover/abstraction.py ++++ b/lib/takeover/abstraction.py +@@ -29,7 +29,7 @@ from lib.takeover.udf import UDF + from lib.takeover.web import Web + from lib.takeover.xp_cmdshell import XP_cmdshell + from lib.utils.safe2bin import safechardecode +-from thirdparty.six.moves import input as _input ++from six.moves import input as _input + + class Abstraction(Web, UDF, XP_cmdshell): + """ +diff --git a/lib/takeover/metasploit.py b/lib/takeover/metasploit.py +index d4a8776..205cc56 100644 +--- a/lib/takeover/metasploit.py ++++ b/lib/takeover/metasploit.py +@@ -49,7 +49,7 @@ from lib.core.subprocessng import blockingWriteToFD + from lib.core.subprocessng import Popen as execute + from lib.core.subprocessng import send_all + from lib.core.subprocessng import recv_some +-from thirdparty import six ++import six + + if IS_WIN: + import msvcrt +diff --git a/lib/takeover/web.py b/lib/takeover/web.py +index 9572740..41c5099 100644 +--- a/lib/takeover/web.py ++++ b/lib/takeover/web.py +@@ -57,7 +57,7 @@ from lib.core.settings import SHELL_RUNCMD_EXE_TAG + from lib.core.settings import SHELL_WRITABLE_DIR_TAG + from lib.core.settings import VIEWSTATE_REGEX + from lib.request.connect import Connect as Request +-from thirdparty.six.moves import urllib as _urllib ++from six.moves import urllib as _urllib + + class Web(object): + """ +diff --git a/lib/techniques/blind/inference.py b/lib/techniques/blind/inference.py +index 52bea11..569f816 100644 +--- a/lib/techniques/blind/inference.py ++++ b/lib/techniques/blind/inference.py +@@ -62,7 +62,7 @@ from lib.request.connect import Connect as Request + from lib.utils.progress import ProgressBar + from lib.utils.safe2bin import safecharencode + from lib.utils.xrange import xrange +-from thirdparty import six ++import six + + def bisection(payload, expression, length=None, charsetType=None, firstChar=None, lastChar=None, dump=False): + """ +diff --git a/lib/techniques/error/use.py b/lib/techniques/error/use.py +index 343733d..07be2e3 100644 +--- a/lib/techniques/error/use.py ++++ b/lib/techniques/error/use.py +@@ -60,7 +60,7 @@ from lib.core.unescaper import unescaper + from lib.request.connect import Connect as Request + from lib.utils.progress import ProgressBar + from lib.utils.safe2bin import safecharencode +-from thirdparty import six ++import six + + def _oneShotErrorUse(expression, field=None, chunkTest=False): + offset = 1 +diff --git a/lib/techniques/union/use.py b/lib/techniques/union/use.py +index ef550d8..dbc0915 100644 +--- a/lib/techniques/union/use.py ++++ b/lib/techniques/union/use.py +@@ -59,8 +59,8 @@ from lib.core.unescaper import unescaper + from lib.request.connect import Connect as Request + from lib.utils.progress import ProgressBar + from lib.utils.safe2bin import safecharencode +-from thirdparty import six +-from thirdparty.odict import OrderedDict ++import six ++from collections import OrderedDict + + def _oneShotUnionUse(expression, unpack=True, limited=False): + retVal = hashDBRetrieve("%s%s" % (conf.hexConvert or False, expression), checkConf=True) # as UNION data is stored raw unconverted +diff --git a/lib/utils/api.py b/lib/utils/api.py +index 2a394f3..def4198 100644 +--- a/lib/utils/api.py ++++ b/lib/utils/api.py +@@ -56,18 +56,18 @@ from lib.core.settings import VERSION_STRING + from lib.core.shell import autoCompletion + from lib.core.subprocessng import Popen + from lib.parse.cmdline import cmdLineParser +-from thirdparty.bottle.bottle import error as return_error +-from thirdparty.bottle.bottle import get +-from thirdparty.bottle.bottle import hook +-from thirdparty.bottle.bottle import post +-from thirdparty.bottle.bottle import request +-from thirdparty.bottle.bottle import response +-from thirdparty.bottle.bottle import run +-from thirdparty.bottle.bottle import server_names +-from thirdparty import six +-from thirdparty.six.moves import http_client as _http_client +-from thirdparty.six.moves import input as _input +-from thirdparty.six.moves import urllib as _urllib ++from bottle import error as return_error ++from bottle import get ++from bottle import hook ++from bottle import post ++from bottle import request ++from bottle import response ++from bottle import run ++from bottle import server_names ++import six ++from six.moves import http_client as _http_client ++from six.moves import input as _input ++from six.moves import urllib as _urllib + + # Global data storage + class DataStore(object): +diff --git a/lib/utils/crawler.py b/lib/utils/crawler.py +index 2d90707..f829b0e 100644 +--- a/lib/utils/crawler.py ++++ b/lib/utils/crawler.py +@@ -36,10 +36,10 @@ from lib.core.threads import getCurrentThreadData + from lib.core.threads import runThreads + from lib.parse.sitemap import parseSitemap + from lib.request.connect import Connect as Request +-from thirdparty import six +-from thirdparty.beautifulsoup.beautifulsoup import BeautifulSoup +-from thirdparty.six.moves import http_client as _http_client +-from thirdparty.six.moves import urllib as _urllib ++import six ++from bs4 import BeautifulSoup ++from six.moves import http_client as _http_client ++from six.moves import urllib as _urllib + + def crawl(target, post=None, cookie=None): + if not target: +diff --git a/lib/utils/har.py b/lib/utils/har.py +index bcea7b0..30aac9e 100644 +--- a/lib/utils/har.py ++++ b/lib/utils/har.py +@@ -15,8 +15,8 @@ from lib.core.bigarray import BigArray + from lib.core.convert import getBytes + from lib.core.convert import getText + from lib.core.settings import VERSION +-from thirdparty.six.moves import BaseHTTPServer as _BaseHTTPServer +-from thirdparty.six.moves import http_client as _http_client ++from six.moves import BaseHTTPServer as _BaseHTTPServer ++from six.moves import http_client as _http_client + + # Reference: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HAR/Overview.html + # http://www.softwareishard.com/har/viewer/ +diff --git a/lib/utils/hash.py b/lib/utils/hash.py +index 4a01333..2e5d8c3 100644 +--- a/lib/utils/hash.py ++++ b/lib/utils/hash.py +@@ -16,8 +16,8 @@ try: + from Crypto.Cipher.DES import MODE_CBC as CBC + from Crypto.Cipher.DES import new as des + except: +- from thirdparty.pydes.pyDes import CBC +- from thirdparty.pydes.pyDes import des ++ from pyDes import CBC ++ from pyDes import des + + _multiprocessing = None + +@@ -85,9 +85,9 @@ from lib.core.settings import NULL + from lib.core.settings import ROTATING_CHARS + from lib.core.settings import UNICODE_ENCODING + from lib.core.wordlist import Wordlist +-from thirdparty import six +-from thirdparty.colorama.initialise import init as coloramainit +-from thirdparty.six.moves import queue as _queue ++import six ++from colorama.initialise import init as coloramainit ++from six.moves import queue as _queue + + def mysql_passwd(password, uppercase=True): + """ +diff --git a/lib/utils/hashdb.py b/lib/utils/hashdb.py +index 10cf2dc..cb00b0f 100644 +--- a/lib/utils/hashdb.py ++++ b/lib/utils/hashdb.py +@@ -26,7 +26,7 @@ from lib.core.settings import HASHDB_FLUSH_THRESHOLD + from lib.core.settings import HASHDB_RETRIEVE_RETRIES + from lib.core.threads import getCurrentThreadData + from lib.core.threads import getCurrentThreadName +-from thirdparty import six ++import six + + class HashDB(object): + def __init__(self, filepath): +diff --git a/lib/utils/httpd.py b/lib/utils/httpd.py +index f5820a6..3353d1d 100644 +--- a/lib/utils/httpd.py ++++ b/lib/utils/httpd.py +@@ -21,11 +21,11 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ". + from lib.core.enums import HTTP_HEADER + from lib.core.settings import UNICODE_ENCODING + from lib.core.settings import VERSION_STRING +-from thirdparty import six +-from thirdparty.six.moves import BaseHTTPServer as _BaseHTTPServer +-from thirdparty.six.moves import http_client as _http_client +-from thirdparty.six.moves import socketserver as _socketserver +-from thirdparty.six.moves import urllib as _urllib ++import six ++from six.moves import BaseHTTPServer as _BaseHTTPServer ++from six.moves import http_client as _http_client ++from six.moves import socketserver as _socketserver ++from six.moves import urllib as _urllib + + HTTP_ADDRESS = "0.0.0.0" + HTTP_PORT = 8951 +diff --git a/lib/utils/pivotdumptable.py b/lib/utils/pivotdumptable.py +index 008a33c..b1ca9bb 100644 +--- a/lib/utils/pivotdumptable.py ++++ b/lib/utils/pivotdumptable.py +@@ -34,7 +34,7 @@ from lib.core.settings import SINGLE_QUOTE_MARKER + from lib.core.unescaper import unescaper + from lib.request import inject + from lib.utils.safe2bin import safechardecode +-from thirdparty.six import unichr as _unichr ++from six import unichr as _unichr + + def pivotDumpTable(table, colList, count=None, blind=True, alias=None): + lengths = {} +diff --git a/lib/utils/purge.py b/lib/utils/purge.py +index e89895e..d0fdbeb 100644 +--- a/lib/utils/purge.py ++++ b/lib/utils/purge.py +@@ -17,7 +17,7 @@ from lib.core.common import openFile + from lib.core.compat import xrange + from lib.core.convert import getUnicode + from lib.core.data import logger +-from thirdparty.six import unichr as _unichr ++from six import unichr as _unichr + + def purge(directory): + """ +diff --git a/lib/utils/search.py b/lib/utils/search.py +index 5ae11a1..67ea87e 100644 +--- a/lib/utils/search.py ++++ b/lib/utils/search.py +@@ -33,8 +33,8 @@ from lib.core.settings import GOOGLE_REGEX + from lib.core.settings import HTTP_ACCEPT_ENCODING_HEADER_VALUE + from lib.core.settings import UNICODE_ENCODING + from lib.request.basic import decodePage +-from thirdparty.six.moves import http_client as _http_client +-from thirdparty.six.moves import urllib as _urllib ++from six.moves import http_client as _http_client ++from six.moves import urllib as _urllib + from thirdparty.socks import socks + + def _search(dork): +diff --git a/lib/utils/sqlalchemy.py b/lib/utils/sqlalchemy.py +index f1bc0d9..d0b0d12 100644 +--- a/lib/utils/sqlalchemy.py ++++ b/lib/utils/sqlalchemy.py +@@ -38,7 +38,7 @@ from lib.core.exception import SqlmapConnectionException + from lib.core.exception import SqlmapFilePathException + from lib.core.exception import SqlmapMissingDependence + from plugins.generic.connector import Connector as GenericConnector +-from thirdparty import six +-from thirdparty.six.moves import urllib as _urllib ++import six ++from six.moves import urllib as _urllib + + def getSafeExString(ex, encoding=None): # Cross-referenced function + raise NotImplementedError +diff --git a/plugins/dbms/maxdb/enumeration.py b/plugins/dbms/maxdb/enumeration.py +index a83b9c2..40d4250 100644 +--- a/plugins/dbms/maxdb/enumeration.py ++++ b/plugins/dbms/maxdb/enumeration.py +@@ -26,8 +26,8 @@ from lib.core.settings import CURRENT_DB + from lib.utils.brute import columnExists + from lib.utils.pivotdumptable import pivotDumpTable + from plugins.generic.enumeration import Enumeration as GenericEnumeration +-from thirdparty import six +-from thirdparty.six.moves import zip as _zip ++import six ++from six.moves import zip as _zip + + class Enumeration(GenericEnumeration): + def __init__(self): +diff --git a/plugins/dbms/mssqlserver/enumeration.py b/plugins/dbms/mssqlserver/enumeration.py +index e5407ce..4c11c83 100644 +--- a/plugins/dbms/mssqlserver/enumeration.py ++++ b/plugins/dbms/mssqlserver/enumeration.py +@@ -32,7 +32,7 @@ from lib.core.exception import SqlmapNoneDataException + from lib.core.settings import CURRENT_DB + from lib.request import inject + from plugins.generic.enumeration import Enumeration as GenericEnumeration +-from thirdparty import six ++import six + + class Enumeration(GenericEnumeration): + def getPrivileges(self, *args, **kwargs): +diff --git a/plugins/dbms/sybase/enumeration.py b/plugins/dbms/sybase/enumeration.py +index 9f254c9..dde98bc 100644 +--- a/plugins/dbms/sybase/enumeration.py ++++ b/plugins/dbms/sybase/enumeration.py +@@ -29,8 +29,8 @@ from lib.core.settings import CURRENT_DB + from lib.utils.brute import columnExists + from lib.utils.pivotdumptable import pivotDumpTable + from plugins.generic.enumeration import Enumeration as GenericEnumeration +-from thirdparty import six +-from thirdparty.six.moves import zip as _zip ++import six ++from six.moves import zip as _zip + + class Enumeration(GenericEnumeration): + def getUsers(self): +diff --git a/plugins/generic/custom.py b/plugins/generic/custom.py +index fab6261..2bd2916 100644 +--- a/plugins/generic/custom.py ++++ b/plugins/generic/custom.py +@@ -26,7 +26,7 @@ from lib.core.settings import NULL + from lib.core.settings import PARAMETER_SPLITTING_REGEX + from lib.core.shell import autoCompletion + from lib.request import inject +-from thirdparty.six.moves import input as _input ++from six.moves import input as _input + + class Custom(object): + """ +diff --git a/plugins/generic/databases.py b/plugins/generic/databases.py +index b924e99..dd01b46 100644 +--- a/plugins/generic/databases.py ++++ b/plugins/generic/databases.py +@@ -55,7 +55,7 @@ from lib.core.settings import VERTICA_DEFAULT_SCHEMA + from lib.request import inject + from lib.utils.brute import columnExists + from lib.utils.brute import tableExists +-from thirdparty import six ++import six + + class Databases(object): + """ +diff --git a/plugins/generic/entries.py b/plugins/generic/entries.py +index 84b1c0e..0fb7b57 100644 +--- a/plugins/generic/entries.py ++++ b/plugins/generic/entries.py +@@ -49,8 +49,8 @@ from lib.core.settings import UPPER_CASE_DBMSES + from lib.request import inject + from lib.utils.hash import attackDumpedTable + from lib.utils.pivotdumptable import pivotDumpTable +-from thirdparty import six +-from thirdparty.six.moves import zip as _zip ++import six ++from six.moves import zip as _zip + + class Entries(object): + """ +diff --git a/plugins/generic/search.py b/plugins/generic/search.py +index bb670b7..d1b46ac 100644 +--- a/plugins/generic/search.py ++++ b/plugins/generic/search.py +@@ -38,7 +38,7 @@ from lib.core.settings import UPPER_CASE_DBMSES + from lib.request import inject + from lib.utils.brute import columnExists + from lib.utils.brute import tableExists +-from thirdparty import six ++import six + + class Search(object): + """ +diff --git a/plugins/generic/users.py b/plugins/generic/users.py +index ddef85a..0a30c1b 100644 +--- a/plugins/generic/users.py ++++ b/plugins/generic/users.py +@@ -47,7 +47,7 @@ from lib.request import inject + from lib.utils.hash import attackCachedUsersPasswords + from lib.utils.hash import storeHashesToFile + from lib.utils.pivotdumptable import pivotDumpTable +-from thirdparty.six.moves import zip as _zip ++from six.moves import zip as _zip + + class Users(object): + """ +diff --git a/thirdparty/multipart/multipartpost.py b/thirdparty/multipart/multipartpost.py +index 5ea37cc..e47a857 100644 +--- a/thirdparty/multipart/multipartpost.py ++++ b/thirdparty/multipart/multipartpost.py +@@ -30,7 +30,7 @@ import sys + from lib.core.compat import choose_boundary + from lib.core.convert import getBytes + from lib.core.exception import SqlmapDataException +-from thirdparty.six.moves import urllib as _urllib ++from six.moves import urllib as _urllib + + # Controls how sequences are uncoded. If true, elements may be given + # multiple values by assigning a sequence. |