@@ -410,14 +410,17 @@ def dbTableValues(self, tableValues):
410410 db = "All"
411411 table = tableValues ["__infos__" ]["table" ]
412412
413+ safeDb = re .sub (r"[^\w]" , UNSAFE_DUMP_FILEPATH_REPLACEMENT , unsafeSQLIdentificatorNaming (db ))
414+ safeTable = re .sub (r"[^\w]" , UNSAFE_DUMP_FILEPATH_REPLACEMENT , unsafeSQLIdentificatorNaming (table ))
415+
413416 if conf .api :
414417 self ._write (tableValues , content_type = CONTENT_TYPE .DUMP_TABLE )
415418
416419 try :
417- dumpDbPath = os .path .join (conf .dumpPath , unsafeSQLIdentificatorNaming ( db ) )
420+ dumpDbPath = os .path .join (conf .dumpPath , safeDb )
418421 except UnicodeError :
419422 try :
420- dumpDbPath = os .path .join (conf .dumpPath , normalizeUnicode (unsafeSQLIdentificatorNaming ( db ) ))
423+ dumpDbPath = os .path .join (conf .dumpPath , normalizeUnicode (safeDb ))
421424 except (UnicodeError , OSError ):
422425 tempDir = tempfile .mkdtemp (prefix = "sqlmapdb" )
423426 warnMsg = "currently unable to use regular dump directory. "
@@ -427,16 +430,14 @@ def dbTableValues(self, tableValues):
427430 dumpDbPath = tempDir
428431
429432 if conf .dumpFormat == DUMP_FORMAT .SQLITE :
430- replication = Replication (os .path .join (conf .dumpPath , "%s.sqlite3" % unsafeSQLIdentificatorNaming ( db ) ))
433+ replication = Replication (os .path .join (conf .dumpPath , "%s.sqlite3" % safeDb ))
431434 elif conf .dumpFormat in (DUMP_FORMAT .CSV , DUMP_FORMAT .HTML ):
432435 if not os .path .isdir (dumpDbPath ):
433436 try :
434437 os .makedirs (dumpDbPath )
435438 except :
436439 warnFile = True
437-
438- _ = re .sub (r"[^\w]" , UNSAFE_DUMP_FILEPATH_REPLACEMENT , unsafeSQLIdentificatorNaming (db ))
439- dumpDbPath = os .path .join (conf .dumpPath , "%s-%s" % (_ , hashlib .md5 (getBytes (db )).hexdigest ()[:8 ]))
440+ dumpDbPath = os .path .join (conf .dumpPath , "%s-%s" % (safeDb , hashlib .md5 (getBytes (db )).hexdigest ()[:8 ]))
440441
441442 if not os .path .isdir (dumpDbPath ):
442443 try :
@@ -450,21 +451,19 @@ def dbTableValues(self, tableValues):
450451
451452 dumpDbPath = tempDir
452453
453- dumpFileName = conf .dumpFile or os .path .join (dumpDbPath , re .sub (r'[\\/]' , UNSAFE_DUMP_FILEPATH_REPLACEMENT , "%s.%s" % (unsafeSQLIdentificatorNaming (table ), conf .dumpFormat .lower ())))
454+ dumpFileName = conf .dumpFile or os .path .join (dumpDbPath , "%s.%s" % (safeTable , conf .dumpFormat .lower ()))
455+
454456 if not checkFile (dumpFileName , False ):
455457 try :
456458 openFile (dumpFileName , "w+" ).close ()
457459 except SqlmapSystemException :
458460 raise
459461 except :
460462 warnFile = True
461-
462- _ = re .sub (r"[^\w]" , UNSAFE_DUMP_FILEPATH_REPLACEMENT , normalizeUnicode (unsafeSQLIdentificatorNaming (table )))
463- if len (_ ) < len (table ) or IS_WIN and table .upper () in WINDOWS_RESERVED_NAMES :
464- _ = re .sub (r"[^\w]" , UNSAFE_DUMP_FILEPATH_REPLACEMENT , unsafeSQLIdentificatorNaming (table ))
465- dumpFileName = os .path .join (dumpDbPath , "%s-%s.%s" % (_ , hashlib .md5 (getBytes (table )).hexdigest ()[:8 ], conf .dumpFormat .lower ()))
463+ if IS_WIN and safeTable .upper () in WINDOWS_RESERVED_NAMES :
464+ dumpFileName = os .path .join (dumpDbPath , "%s-%s.%s" % (safeTable , hashlib .md5 (getBytes (table )).hexdigest ()[:8 ], conf .dumpFormat .lower ()))
466465 else :
467- dumpFileName = os .path .join (dumpDbPath , "%s.%s" % (_ , conf .dumpFormat .lower ()))
466+ dumpFileName = os .path .join (dumpDbPath , "%s.%s" % (safeTable , conf .dumpFormat .lower ()))
468467 else :
469468 appendToFile = any ((conf .limitStart , conf .limitStop ))
470469
@@ -548,7 +547,7 @@ def dbTableValues(self, tableValues):
548547 dataToDumpFile (dumpFP , "<!DOCTYPE html>\n <html>\n <head>\n " )
549548 dataToDumpFile (dumpFP , "<meta http-equiv=\" Content-type\" content=\" text/html;charset=%s\" >\n " % UNICODE_ENCODING )
550549 dataToDumpFile (dumpFP , "<meta name=\" generator\" content=\" %s\" />\n " % VERSION_STRING )
551- dataToDumpFile (dumpFP , "<title>%s</title>\n " % ("%s%s" % ("%s." % db if METADB_SUFFIX not in db else "" , table )))
550+ dataToDumpFile (dumpFP , "<title>%s</title>\n " % ("%s%s" % ("%s." % db if METADB_SUFFIX not in db else "" , table )). replace ( "<" , "" ) )
552551 dataToDumpFile (dumpFP , HTML_DUMP_CSS_STYLE )
553552 dataToDumpFile (dumpFP , "\n </head>\n <body>\n <table>\n <thead>\n <tr>\n " )
554553
0 commit comments