mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2024-11-22 17:46:37 +03:00
Minor refactoring
This commit is contained in:
parent
22c7bc54b4
commit
1e60378fb2
|
@ -1297,7 +1297,7 @@ def setPaths(rootPath):
|
||||||
paths.PGSQL_XML = os.path.join(paths.SQLMAP_XML_BANNER_PATH, "postgresql.xml")
|
paths.PGSQL_XML = os.path.join(paths.SQLMAP_XML_BANNER_PATH, "postgresql.xml")
|
||||||
|
|
||||||
for path in paths.values():
|
for path in paths.values():
|
||||||
if any(path.endswith(_) for _ in (".txt", ".xml", ".zip")):
|
if any(path.endswith(_) for _ in (".md5", ".txt", ".xml", ".zip")):
|
||||||
checkFile(path)
|
checkFile(path)
|
||||||
|
|
||||||
def weAreFrozen():
|
def weAreFrozen():
|
||||||
|
@ -1427,7 +1427,7 @@ def parseTargetUrl():
|
||||||
errMsg += "on this platform"
|
errMsg += "on this platform"
|
||||||
raise SqlmapGenericException(errMsg)
|
raise SqlmapGenericException(errMsg)
|
||||||
|
|
||||||
if not re.search(r"^http[s]*://", conf.url, re.I) and not re.search(r"^ws[s]*://", conf.url, re.I):
|
if not re.search(r"^https?://", conf.url, re.I) and not re.search(r"^wss?://", conf.url, re.I):
|
||||||
if re.search(r":443\b", conf.url):
|
if re.search(r":443\b", conf.url):
|
||||||
conf.url = "https://%s" % conf.url
|
conf.url = "https://%s" % conf.url
|
||||||
else:
|
else:
|
||||||
|
@ -1528,14 +1528,14 @@ def expandAsteriskForColumns(expression):
|
||||||
the SQL query string (expression)
|
the SQL query string (expression)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
asterisk = re.search(r"(?i)\ASELECT(\s+TOP\s+[\d]+)?\s+\*\s+FROM\s+`?([^`\s()]+)", expression)
|
match = re.search(r"(?i)\ASELECT(\s+TOP\s+[\d]+)?\s+\*\s+FROM\s+`?([^`\s()]+)", expression)
|
||||||
|
|
||||||
if asterisk:
|
if match:
|
||||||
infoMsg = "you did not provide the fields in your query. "
|
infoMsg = "you did not provide the fields in your query. "
|
||||||
infoMsg += "sqlmap will retrieve the column names itself"
|
infoMsg += "sqlmap will retrieve the column names itself"
|
||||||
logger.info(infoMsg)
|
logger.info(infoMsg)
|
||||||
|
|
||||||
_ = asterisk.group(2).replace("..", '.').replace(".dbo.", '.')
|
_ = match.group(2).replace("..", '.').replace(".dbo.", '.')
|
||||||
db, conf.tbl = _.split('.', 1) if '.' in _ else (None, _)
|
db, conf.tbl = _.split('.', 1) if '.' in _ else (None, _)
|
||||||
|
|
||||||
if db is None:
|
if db is None:
|
||||||
|
@ -4284,9 +4284,11 @@ def extractExpectedValue(value, expected):
|
||||||
value = value.strip().lower()
|
value = value.strip().lower()
|
||||||
if value in ("true", "false"):
|
if value in ("true", "false"):
|
||||||
value = value == "true"
|
value = value == "true"
|
||||||
|
elif value in ('t', 'f'):
|
||||||
|
value = value == 't'
|
||||||
elif value in ("1", "-1"):
|
elif value in ("1", "-1"):
|
||||||
value = True
|
value = True
|
||||||
elif value == "0":
|
elif value == '0':
|
||||||
value = False
|
value = False
|
||||||
else:
|
else:
|
||||||
value = None
|
value = None
|
||||||
|
|
|
@ -19,7 +19,7 @@ from lib.core.enums import DBMS_DIRECTORY_NAME
|
||||||
from lib.core.enums import OS
|
from lib.core.enums import OS
|
||||||
|
|
||||||
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
||||||
VERSION = "1.2.7.21"
|
VERSION = "1.2.7.22"
|
||||||
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
||||||
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
|
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)
|
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)
|
||||||
|
|
|
@ -136,7 +136,7 @@ class XP_cmdshell:
|
||||||
|
|
||||||
for line in lines:
|
for line in lines:
|
||||||
echoedLine = "echo %s " % line
|
echoedLine = "echo %s " % line
|
||||||
echoedLine += ">> \"%s\%s\"" % (tmpPath, randDestFile)
|
echoedLine += ">> \"%s\\%s\"" % (tmpPath, randDestFile)
|
||||||
echoedLines.append(echoedLine)
|
echoedLines.append(echoedLine)
|
||||||
|
|
||||||
for echoedLine in echoedLines:
|
for echoedLine in echoedLines:
|
||||||
|
|
|
@ -67,11 +67,11 @@ class Filesystem(GenericFilesystem):
|
||||||
chunkName = randomStr(lowercase=True)
|
chunkName = randomStr(lowercase=True)
|
||||||
fileScrLines = self._dataToScr(fileContent, chunkName)
|
fileScrLines = self._dataToScr(fileContent, chunkName)
|
||||||
|
|
||||||
logger.debug("uploading debug script to %s\%s, please wait.." % (tmpPath, randScr))
|
logger.debug("uploading debug script to %s\\%s, please wait.." % (tmpPath, randScr))
|
||||||
|
|
||||||
self.xpCmdshellWriteFile(fileScrLines, tmpPath, randScr)
|
self.xpCmdshellWriteFile(fileScrLines, tmpPath, randScr)
|
||||||
|
|
||||||
logger.debug("generating chunk file %s\%s from debug script %s" % (tmpPath, chunkName, randScr))
|
logger.debug("generating chunk file %s\\%s from debug script %s" % (tmpPath, chunkName, randScr))
|
||||||
|
|
||||||
commands = (
|
commands = (
|
||||||
"cd \"%s\"" % tmpPath,
|
"cd \"%s\"" % tmpPath,
|
||||||
|
@ -174,10 +174,10 @@ class Filesystem(GenericFilesystem):
|
||||||
|
|
||||||
encodedFileContent = base64encode(wFileContent)
|
encodedFileContent = base64encode(wFileContent)
|
||||||
encodedBase64File = "tmpf%s.txt" % randomStr(lowercase=True)
|
encodedBase64File = "tmpf%s.txt" % randomStr(lowercase=True)
|
||||||
encodedBase64FilePath = "%s\%s" % (tmpPath, encodedBase64File)
|
encodedBase64FilePath = "%s\\%s" % (tmpPath, encodedBase64File)
|
||||||
|
|
||||||
randPSScript = "tmpps%s.ps1" % randomStr(lowercase=True)
|
randPSScript = "tmpps%s.ps1" % randomStr(lowercase=True)
|
||||||
randPSScriptPath = "%s\%s" % (tmpPath, randPSScript)
|
randPSScriptPath = "%s\\%s" % (tmpPath, randPSScript)
|
||||||
|
|
||||||
wFileSize = len(encodedFileContent)
|
wFileSize = len(encodedFileContent)
|
||||||
chunkMaxSize = 1024
|
chunkMaxSize = 1024
|
||||||
|
@ -212,15 +212,15 @@ class Filesystem(GenericFilesystem):
|
||||||
logger.info(infoMsg)
|
logger.info(infoMsg)
|
||||||
|
|
||||||
dFileName = ntpath.basename(dFile)
|
dFileName = ntpath.basename(dFile)
|
||||||
sFile = "%s\%s" % (tmpPath, dFileName)
|
sFile = "%s\\%s" % (tmpPath, dFileName)
|
||||||
wFileSize = os.path.getsize(wFile)
|
wFileSize = os.path.getsize(wFile)
|
||||||
debugSize = 0xFF00
|
debugSize = 0xFF00
|
||||||
|
|
||||||
if wFileSize < debugSize:
|
if wFileSize < debugSize:
|
||||||
chunkName = self._updateDestChunk(wFileContent, tmpPath)
|
chunkName = self._updateDestChunk(wFileContent, tmpPath)
|
||||||
|
|
||||||
debugMsg = "renaming chunk file %s\%s to %s " % (tmpPath, chunkName, fileType)
|
debugMsg = "renaming chunk file %s\\%s to %s " % (tmpPath, chunkName, fileType)
|
||||||
debugMsg += "file %s\%s and moving it to %s" % (tmpPath, dFileName, dFile)
|
debugMsg += "file %s\\%s and moving it to %s" % (tmpPath, dFileName, dFile)
|
||||||
logger.debug(debugMsg)
|
logger.debug(debugMsg)
|
||||||
|
|
||||||
commands = (
|
commands = (
|
||||||
|
@ -248,7 +248,7 @@ class Filesystem(GenericFilesystem):
|
||||||
debugMsg = "appending chunk "
|
debugMsg = "appending chunk "
|
||||||
copyCmd = "copy /B /Y %s+%s %s" % (dFileName, chunkName, dFileName)
|
copyCmd = "copy /B /Y %s+%s %s" % (dFileName, chunkName, dFileName)
|
||||||
|
|
||||||
debugMsg += "%s\%s to %s file %s\%s" % (tmpPath, chunkName, fileType, tmpPath, dFileName)
|
debugMsg += "%s\\%s to %s file %s\\%s" % (tmpPath, chunkName, fileType, tmpPath, dFileName)
|
||||||
logger.debug(debugMsg)
|
logger.debug(debugMsg)
|
||||||
|
|
||||||
commands = (
|
commands = (
|
||||||
|
@ -275,7 +275,7 @@ class Filesystem(GenericFilesystem):
|
||||||
|
|
||||||
randVbs = "tmps%s.vbs" % randomStr(lowercase=True)
|
randVbs = "tmps%s.vbs" % randomStr(lowercase=True)
|
||||||
randFile = "tmpf%s.txt" % randomStr(lowercase=True)
|
randFile = "tmpf%s.txt" % randomStr(lowercase=True)
|
||||||
randFilePath = "%s\%s" % (tmpPath, randFile)
|
randFilePath = "%s\\%s" % (tmpPath, randFile)
|
||||||
|
|
||||||
vbs = """Dim inputFilePath, outputFilePath
|
vbs = """Dim inputFilePath, outputFilePath
|
||||||
inputFilePath = "%s"
|
inputFilePath = "%s"
|
||||||
|
@ -338,7 +338,7 @@ class Filesystem(GenericFilesystem):
|
||||||
|
|
||||||
self.xpCmdshellWriteFile(encodedFileContent, tmpPath, randFile)
|
self.xpCmdshellWriteFile(encodedFileContent, tmpPath, randFile)
|
||||||
|
|
||||||
logger.debug("uploading a visual basic decoder stub %s\%s, please wait.." % (tmpPath, randVbs))
|
logger.debug("uploading a visual basic decoder stub %s\\%s, please wait.." % (tmpPath, randVbs))
|
||||||
|
|
||||||
self.xpCmdshellWriteFile(vbs, tmpPath, randVbs)
|
self.xpCmdshellWriteFile(vbs, tmpPath, randVbs)
|
||||||
|
|
||||||
|
@ -359,7 +359,7 @@ class Filesystem(GenericFilesystem):
|
||||||
chunkMaxSize = 500
|
chunkMaxSize = 500
|
||||||
|
|
||||||
randFile = "tmpf%s.txt" % randomStr(lowercase=True)
|
randFile = "tmpf%s.txt" % randomStr(lowercase=True)
|
||||||
randFilePath = "%s\%s" % (tmpPath, randFile)
|
randFilePath = "%s\\%s" % (tmpPath, randFile)
|
||||||
|
|
||||||
encodedFileContent = base64encode(wFileContent)
|
encodedFileContent = base64encode(wFileContent)
|
||||||
|
|
||||||
|
|
|
@ -372,7 +372,7 @@ class Takeover(Abstraction, Metasploit, ICMPsh, Registry, Miscellaneous):
|
||||||
else:
|
else:
|
||||||
regVal = conf.regVal
|
regVal = conf.regVal
|
||||||
|
|
||||||
infoMsg = "reading Windows registry path '%s\%s' " % (regKey, regVal)
|
infoMsg = "reading Windows registry path '%s\\%s' " % (regKey, regVal)
|
||||||
logger.info(infoMsg)
|
logger.info(infoMsg)
|
||||||
|
|
||||||
return self.readRegKey(regKey, regVal, True)
|
return self.readRegKey(regKey, regVal, True)
|
||||||
|
@ -417,7 +417,7 @@ class Takeover(Abstraction, Metasploit, ICMPsh, Registry, Miscellaneous):
|
||||||
else:
|
else:
|
||||||
regType = conf.regType
|
regType = conf.regType
|
||||||
|
|
||||||
infoMsg = "adding Windows registry path '%s\%s' " % (regKey, regVal)
|
infoMsg = "adding Windows registry path '%s\\%s' " % (regKey, regVal)
|
||||||
infoMsg += "with data '%s'. " % regData
|
infoMsg += "with data '%s'. " % regData
|
||||||
infoMsg += "This will work only if the user running the database "
|
infoMsg += "This will work only if the user running the database "
|
||||||
infoMsg += "process has privileges to modify the Windows registry."
|
infoMsg += "process has privileges to modify the Windows registry."
|
||||||
|
@ -449,12 +449,12 @@ class Takeover(Abstraction, Metasploit, ICMPsh, Registry, Miscellaneous):
|
||||||
regVal = conf.regVal
|
regVal = conf.regVal
|
||||||
|
|
||||||
message = "are you sure that you want to delete the Windows "
|
message = "are you sure that you want to delete the Windows "
|
||||||
message += "registry path '%s\%s? [y/N] " % (regKey, regVal)
|
message += "registry path '%s\\%s? [y/N] " % (regKey, regVal)
|
||||||
|
|
||||||
if not readInput(message, default='N', boolean=True):
|
if not readInput(message, default='N', boolean=True):
|
||||||
return
|
return
|
||||||
|
|
||||||
infoMsg = "deleting Windows registry path '%s\%s'. " % (regKey, regVal)
|
infoMsg = "deleting Windows registry path '%s\\%s'. " % (regKey, regVal)
|
||||||
infoMsg += "This will work only if the user running the database "
|
infoMsg += "This will work only if the user running the database "
|
||||||
infoMsg += "process has privileges to modify the Windows registry."
|
infoMsg += "process has privileges to modify the Windows registry."
|
||||||
logger.info(infoMsg)
|
logger.info(infoMsg)
|
||||||
|
|
|
@ -28,7 +28,7 @@ c7443613a0a2505b1faec931cee2a6ef lib/controller/handler.py
|
||||||
1e5532ede194ac9c083891c2f02bca93 lib/controller/__init__.py
|
1e5532ede194ac9c083891c2f02bca93 lib/controller/__init__.py
|
||||||
0adf547455a76dc71e6a599e52da1ed9 lib/core/agent.py
|
0adf547455a76dc71e6a599e52da1ed9 lib/core/agent.py
|
||||||
fd8f239e259afaf5f24bcf34a0ad187f lib/core/bigarray.py
|
fd8f239e259afaf5f24bcf34a0ad187f lib/core/bigarray.py
|
||||||
2131176e2fca7d400ccd0e2da6f8b77b lib/core/common.py
|
de53dd81bda04541d0992852aee0f2b3 lib/core/common.py
|
||||||
0d082da16c388b3445e656e0760fb582 lib/core/convert.py
|
0d082da16c388b3445e656e0760fb582 lib/core/convert.py
|
||||||
9f87391b6a3395f7f50830b391264f27 lib/core/data.py
|
9f87391b6a3395f7f50830b391264f27 lib/core/data.py
|
||||||
72016ea5c994a711a262fd64572a0fcd lib/core/datatype.py
|
72016ea5c994a711a262fd64572a0fcd lib/core/datatype.py
|
||||||
|
@ -48,7 +48,7 @@ c8c386d644d57c659d74542f5f57f632 lib/core/patch.py
|
||||||
0c3eef46bdbf87e29a3f95f90240d192 lib/core/replication.py
|
0c3eef46bdbf87e29a3f95f90240d192 lib/core/replication.py
|
||||||
a7db43859b61569b601b97f187dd31c5 lib/core/revision.py
|
a7db43859b61569b601b97f187dd31c5 lib/core/revision.py
|
||||||
fcb74fcc9577523524659ec49e2e964b lib/core/session.py
|
fcb74fcc9577523524659ec49e2e964b lib/core/session.py
|
||||||
475b8df4fbbb3b5108ccb1e856fe2a61 lib/core/settings.py
|
9c991557b5b0a38f14c5667d627ead76 lib/core/settings.py
|
||||||
dd68a9d02fccb4fa1428b20e15b0db5d lib/core/shell.py
|
dd68a9d02fccb4fa1428b20e15b0db5d lib/core/shell.py
|
||||||
a7edc9250d13af36ac0108f259859c19 lib/core/subprocessng.py
|
a7edc9250d13af36ac0108f259859c19 lib/core/subprocessng.py
|
||||||
12bed9603b6fba3e5ffda11d584bc449 lib/core/target.py
|
12bed9603b6fba3e5ffda11d584bc449 lib/core/target.py
|
||||||
|
@ -88,7 +88,7 @@ acc1db3667bf910b809eb279b60595eb lib/takeover/icmpsh.py
|
||||||
fb9e34d558293b5d6b9727f440712886 lib/takeover/registry.py
|
fb9e34d558293b5d6b9727f440712886 lib/takeover/registry.py
|
||||||
48575dde7bb867b7937769f569a98309 lib/takeover/udf.py
|
48575dde7bb867b7937769f569a98309 lib/takeover/udf.py
|
||||||
f6f835e4190a55e42d13c1e7ca3f728f lib/takeover/web.py
|
f6f835e4190a55e42d13c1e7ca3f728f lib/takeover/web.py
|
||||||
f1decf0a987bd3a4bc757212cbe6a6c8 lib/takeover/xp_cmdshell.py
|
debc36a3ff80ba915aeeee69b21a8ddc lib/takeover/xp_cmdshell.py
|
||||||
09beb19c2ec9fdd14329f1c0b59a2d05 lib/techniques/blind/inference.py
|
09beb19c2ec9fdd14329f1c0b59a2d05 lib/techniques/blind/inference.py
|
||||||
1e5532ede194ac9c083891c2f02bca93 lib/techniques/blind/__init__.py
|
1e5532ede194ac9c083891c2f02bca93 lib/techniques/blind/__init__.py
|
||||||
1e5532ede194ac9c083891c2f02bca93 lib/techniques/dns/__init__.py
|
1e5532ede194ac9c083891c2f02bca93 lib/techniques/dns/__init__.py
|
||||||
|
@ -163,7 +163,7 @@ e7d44671ae26c0bcd5fe8448be070bbd plugins/dbms/maxdb/syntax.py
|
||||||
bf7842bb291e2297c3c8d1023eb3e550 plugins/dbms/maxdb/takeover.py
|
bf7842bb291e2297c3c8d1023eb3e550 plugins/dbms/maxdb/takeover.py
|
||||||
decc645344bb93aca504a71ba2e4cad4 plugins/dbms/mssqlserver/connector.py
|
decc645344bb93aca504a71ba2e4cad4 plugins/dbms/mssqlserver/connector.py
|
||||||
f1f1541a54faf67440179fa521f99849 plugins/dbms/mssqlserver/enumeration.py
|
f1f1541a54faf67440179fa521f99849 plugins/dbms/mssqlserver/enumeration.py
|
||||||
177e1d55d28ed3190bc0079b8126c6be plugins/dbms/mssqlserver/filesystem.py
|
65911fdc86fa6322e72319e6488a0bb8 plugins/dbms/mssqlserver/filesystem.py
|
||||||
08914da79141713bd69a25c3cc7f06a8 plugins/dbms/mssqlserver/fingerprint.py
|
08914da79141713bd69a25c3cc7f06a8 plugins/dbms/mssqlserver/fingerprint.py
|
||||||
f25c50a95e5390ecd32be5a011637349 plugins/dbms/mssqlserver/__init__.py
|
f25c50a95e5390ecd32be5a011637349 plugins/dbms/mssqlserver/__init__.py
|
||||||
612be1929108e7b4512a49a4a3837bbc plugins/dbms/mssqlserver/syntax.py
|
612be1929108e7b4512a49a4a3837bbc plugins/dbms/mssqlserver/syntax.py
|
||||||
|
@ -214,7 +214,7 @@ f5d5419efddfe04648ea5e953c650793 plugins/generic/fingerprint.py
|
||||||
f7874230e5661910d5fd21544c7d1022 plugins/generic/misc.py
|
f7874230e5661910d5fd21544c7d1022 plugins/generic/misc.py
|
||||||
b1d2a7f3170f9b69e71335aa47f9b08b plugins/generic/search.py
|
b1d2a7f3170f9b69e71335aa47f9b08b plugins/generic/search.py
|
||||||
a70cc0ada4b0cc9e7df23cb6d48a4a0c plugins/generic/syntax.py
|
a70cc0ada4b0cc9e7df23cb6d48a4a0c plugins/generic/syntax.py
|
||||||
e522c294676ede15bee751107e9bb449 plugins/generic/takeover.py
|
4adc07051b727f1525cf0a2d619221f8 plugins/generic/takeover.py
|
||||||
4419b13a4b78d7e9e4a2632302344a1a plugins/generic/users.py
|
4419b13a4b78d7e9e4a2632302344a1a plugins/generic/users.py
|
||||||
1e5532ede194ac9c083891c2f02bca93 plugins/__init__.py
|
1e5532ede194ac9c083891c2f02bca93 plugins/__init__.py
|
||||||
5dc693e22f5d020c5c568d7325bd4226 shell/backdoors/backdoor.asp_
|
5dc693e22f5d020c5c568d7325bd4226 shell/backdoors/backdoor.asp_
|
||||||
|
|
Loading…
Reference in New Issue
Block a user