From 3117730d84b0cffa092cb0a44571a1b3713e1e75 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Wed, 15 Mar 2023 23:00:16 +0100 Subject: [PATCH] Fixes #5364 --- lib/core/compat.py | 18 ++++++++++++++++++ lib/core/option.py | 2 +- lib/core/settings.py | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/core/compat.py b/lib/core/compat.py index 851e57eb8..9952f663b 100644 --- a/lib/core/compat.py +++ b/lib/core/compat.py @@ -9,6 +9,7 @@ from __future__ import division import binascii import functools +import inspect import math import os import random @@ -312,3 +313,20 @@ def LooseVersion(version): result = float("NaN") return result + +# Reference: https://github.com/bottlepy/bottle/blob/df67999584a0e51ec5b691146c7fa4f3c87f5aac/bottle.py +if not hasattr(inspect, "getargspec") and hasattr(inspect, "getfullargspec"): + from inspect import getfullargspec + + def makelist(data): + if isinstance(data, (tuple, list, set, dict)): + return list(data) + elif data: + return [data] + else: + return [] + + def getargspec(func): + spec = getfullargspec(func) + kwargs = makelist(spec[0]) + makelist(spec.kwonlyargs) + return kwargs, spec[1], spec[2], spec[3] diff --git a/lib/core/option.py b/lib/core/option.py index 2d50d84f9..7fc2116df 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -815,7 +815,7 @@ def _setTamperingFunctions(): priority = PRIORITY.NORMAL if not hasattr(module, "__priority__") else module.__priority__ for name, function in inspect.getmembers(module, inspect.isfunction): - if name == "tamper" and (hasattr(inspect, "signature") and all(_ in inspect.signature(function).parameters for _ in ("payload", "kwargs")) or hasattr(inspect, "getargspec") and inspect.getargspec(function).args and inspect.getargspec(function).keywords == "kwargs"): + if name == "tamper" and (hasattr(inspect, "signature") and all(_ in inspect.signature(function).parameters for _ in ("payload", "kwargs")) or inspect.getargspec(function).args and inspect.getargspec(function).keywords == "kwargs"): found = True kb.tamperFunctions.append(function) function.__name__ = module.__name__ diff --git a/lib/core/settings.py b/lib/core/settings.py index f555e6d3a..956033302 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -20,7 +20,7 @@ from thirdparty import six from thirdparty.six import unichr as _unichr # sqlmap version (...) -VERSION = "1.7.3.0" +VERSION = "1.7.3.1" TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable" TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34} VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)