mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-01-24 16:24:25 +03:00
Major bug fix in --read-file option and minor code refactoring.
This commit is contained in:
parent
cb3d2bac16
commit
8096a37940
|
@ -48,24 +48,13 @@ class Filesystem:
|
||||||
|
|
||||||
|
|
||||||
def __unbase64String(self, base64Str):
|
def __unbase64String(self, base64Str):
|
||||||
unbase64Str = ""
|
|
||||||
|
|
||||||
if isinstance(base64Str, (list, tuple, set)):
|
|
||||||
for chunk in base64Str:
|
|
||||||
if isinstance(chunk, (list, tuple, set)):
|
|
||||||
chunk = chunk[0]
|
|
||||||
|
|
||||||
unbase64Str += "%s\n" % chunk.decode("base64")
|
|
||||||
else:
|
|
||||||
unbase64Str = "%s\n" % base64Str.decode("base64")
|
unbase64Str = "%s\n" % base64Str.decode("base64")
|
||||||
|
|
||||||
return unbase64Str
|
return unbase64Str
|
||||||
|
|
||||||
|
|
||||||
def __unhexString(self, hexStr):
|
def __unhexString(self, hexStr):
|
||||||
unhexStr = ""
|
if len(hexStr) % 2 != 0:
|
||||||
|
|
||||||
if ( len(hexStr) % 2 ) != 0:
|
|
||||||
errMsg = "for some reasons sqlmap retrieved an odd-length "
|
errMsg = "for some reasons sqlmap retrieved an odd-length "
|
||||||
errMsg += "hexadecimal string which it is not able to convert "
|
errMsg += "hexadecimal string which it is not able to convert "
|
||||||
errMsg += "to raw string"
|
errMsg += "to raw string"
|
||||||
|
@ -73,16 +62,7 @@ class Filesystem:
|
||||||
|
|
||||||
return hexStr
|
return hexStr
|
||||||
|
|
||||||
if isinstance(hexStr, (list, tuple, set)):
|
return binascii.unhexlify(hexStr)
|
||||||
for chunk in hexStr:
|
|
||||||
if isinstance(chunk, (list, tuple, set)):
|
|
||||||
chunk = chunk[0]
|
|
||||||
|
|
||||||
unhexStr += binascii.unhexlify(chunk)
|
|
||||||
else:
|
|
||||||
unhexStr = binascii.unhexlify(hexStr)
|
|
||||||
|
|
||||||
return unhexStr
|
|
||||||
|
|
||||||
|
|
||||||
def __binDataToScr(self, binaryData, chunkName):
|
def __binDataToScr(self, binaryData, chunkName):
|
||||||
|
@ -301,10 +281,20 @@ class Filesystem:
|
||||||
|
|
||||||
fileContent = self.stackedReadFile(rFile)
|
fileContent = self.stackedReadFile(rFile)
|
||||||
|
|
||||||
if fileContent == None:
|
if fileContent in ( None, "" ):
|
||||||
self.cleanup(onlyFileTbl=True)
|
self.cleanup(onlyFileTbl=True)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
elif isinstance(fileContent, (list, tuple, set)):
|
||||||
|
newFileContent = ""
|
||||||
|
|
||||||
|
for chunk in fileContent:
|
||||||
|
if isinstance(chunk, (list, tuple, set)):
|
||||||
|
chunk = chunk[0]
|
||||||
|
|
||||||
|
newFileContent += chunk
|
||||||
|
|
||||||
|
fileContent = newFileContent
|
||||||
|
|
||||||
if kb.dbms in ( "MySQL", "Microsoft SQL Server" ):
|
if kb.dbms in ( "MySQL", "Microsoft SQL Server" ):
|
||||||
fileContent = self.__unhexString(fileContent)
|
fileContent = self.__unhexString(fileContent)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user