Skip to content

Commit 69900a6

Browse files
committed
1 parent 7d31de1 commit 69900a6

File tree

8 files changed

+18
-14
lines changed

8 files changed

+18
-14
lines changed

lib/core/common.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import codecs
1212
import contextlib
1313
import copy
14-
import distutils.version
1514
import functools
1615
import getpass
1716
import hashlib
@@ -47,6 +46,7 @@
4746
from extra.cloak.cloak import decloak
4847
from lib.core.bigarray import BigArray
4948
from lib.core.compat import cmp
49+
from lib.core.compat import LooseVersion
5050
from lib.core.compat import round
5151
from lib.core.compat import xrange
5252
from lib.core.convert import base64pickle
@@ -591,7 +591,7 @@ def isVersionGreaterOrEqualThan(version):
591591

592592
if Backend.getVersion() is not None and version is not None:
593593
try:
594-
retVal = distutils.version.LooseVersion(Backend.getVersion()) >= distutils.version.LooseVersion(version)
594+
retVal = LooseVersion(Backend.getVersion()) >= LooseVersion(version)
595595
except:
596596
retVal = str(Backend.getVersion()) >= str(version)
597597

lib/core/compat.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,3 +257,8 @@ def __hash__(self):
257257
else:
258258
xrange = xrange
259259
buffer = buffer
260+
261+
try:
262+
from pkg_resources import parse_version as LooseVersion
263+
except ImportError:
264+
from distutils.version import LooseVersion

lib/core/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from thirdparty.six import unichr as _unichr
2121

2222
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
23-
VERSION = "1.5.10.5"
23+
VERSION = "1.5.10.6"
2424
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
2525
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
2626
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)

lib/core/testing.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
from lib.core.common import randomStr
2525
from lib.core.common import shellExec
2626
from lib.core.compat import round
27-
from lib.core.compat import xrange
2827
from lib.core.convert import encodeBase64
2928
from lib.core.data import kb
3029
from lib.core.data import logger

lib/request/httpshandler.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
See the file 'LICENSE' for copying permission
66
"""
77

8-
import distutils.version
98
import re
109
import socket
1110

1211
from lib.core.common import filterNone
1312
from lib.core.common import getSafeExString
13+
from lib.core.compat import LooseVersion
1414
from lib.core.compat import xrange
1515
from lib.core.data import conf
1616
from lib.core.data import kb
@@ -109,7 +109,7 @@ def create_sock():
109109
if not success:
110110
errMsg = "can't establish SSL connection"
111111
# Reference: https://docs.python.org/2/library/ssl.html
112-
if distutils.version.LooseVersion(PYVERSION) < distutils.version.LooseVersion("2.7.9"):
112+
if LooseVersion(PYVERSION) < LooseVersion("2.7.9"):
113113
errMsg += " (please retry with Python >= 2.7.9)"
114114

115115
if kb.sslSuccess and not self.retrying:

plugins/dbms/mysql/takeover.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
See the file 'LICENSE' for copying permission
66
"""
77

8-
import distutils.version
98
import os
109

1110
from lib.core.agent import agent
@@ -17,6 +16,7 @@
1716
from lib.core.common import ntToPosixSlashes
1817
from lib.core.common import randomStr
1918
from lib.core.common import unArrayizeValue
19+
from lib.core.compat import LooseVersion
2020
from lib.core.data import kb
2121
from lib.core.data import logger
2222
from lib.core.data import paths
@@ -38,13 +38,13 @@ def udfSetRemotePath(self):
3838

3939
banVer = kb.bannerFp["dbmsVersion"]
4040

41-
if banVer and distutils.version.LooseVersion(banVer) >= distutils.version.LooseVersion("5.0.67"):
41+
if banVer and LooseVersion(banVer) >= LooseVersion("5.0.67"):
4242
if self.__plugindir is None:
4343
logger.info("retrieving MySQL plugin directory absolute path")
4444
self.__plugindir = unArrayizeValue(inject.getValue("SELECT @@plugin_dir"))
4545

4646
# On MySQL 5.1 >= 5.1.19 and on any version of MySQL 6.0
47-
if self.__plugindir is None and distutils.version.LooseVersion(banVer) >= distutils.version.LooseVersion("5.1.19"):
47+
if self.__plugindir is None and LooseVersion(banVer) >= LooseVersion("5.1.19"):
4848
logger.info("retrieving MySQL base directory absolute path")
4949

5050
# Reference: http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_basedir

plugins/dbms/postgresql/takeover.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
See the file 'LICENSE' for copying permission
66
"""
77

8-
import distutils.version
98
import os
109

1110
from lib.core.common import Backend
@@ -17,6 +16,7 @@
1716
from lib.core.common import isNoneValue
1817
from lib.core.common import isStackingAvailable
1918
from lib.core.common import randomStr
19+
from lib.core.compat import LooseVersion
2020
from lib.core.data import kb
2121
from lib.core.data import logger
2222
from lib.core.data import paths
@@ -54,9 +54,9 @@ def udfSetLocalPaths(self):
5454
if not banVer or not banVer[0].isdigit():
5555
errMsg = "unsupported feature on unknown version of PostgreSQL"
5656
raise SqlmapUnsupportedFeatureException(errMsg)
57-
elif distutils.version.LooseVersion(banVer) >= distutils.version.LooseVersion("10"):
57+
elif LooseVersion(banVer) >= LooseVersion("10"):
5858
majorVer = banVer.split('.')[0]
59-
elif distutils.version.LooseVersion(banVer) >= distutils.version.LooseVersion("8.2") and '.' in banVer:
59+
elif LooseVersion(banVer) >= LooseVersion("8.2") and '.' in banVer:
6060
majorVer = '.'.join(banVer.split('.')[:2])
6161
else:
6262
errMsg = "unsupported feature on versions of PostgreSQL before 8.2"

sqlmap.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
sys.exit("[!] wrong installation detected (missing modules). Visit 'https://github.com/sqlmapproject/sqlmap/#installation' for further details")
1919

2020
import bdb
21-
import distutils
2221
import glob
2322
import inspect
2423
import json
@@ -64,6 +63,7 @@
6463
from lib.core.common import MKSTEMP_PREFIX
6564
from lib.core.common import setColor
6665
from lib.core.common import unhandledExceptionMessage
66+
from lib.core.compat import LooseVersion
6767
from lib.core.compat import xrange
6868
from lib.core.exception import SqlmapBaseException
6969
from lib.core.exception import SqlmapShellQuitException
@@ -114,7 +114,7 @@ def checkEnvironment():
114114
logger.critical(errMsg)
115115
raise SystemExit
116116

117-
if distutils.version.LooseVersion(VERSION) < distutils.version.LooseVersion("1.0"):
117+
if LooseVersion(VERSION) < LooseVersion("1.0"):
118118
errMsg = "your runtime environment (e.g. PYTHONPATH) is "
119119
errMsg += "broken. Please make sure that you are not running "
120120
errMsg += "newer versions of sqlmap with runtime scripts for older "

0 commit comments

Comments
 (0)