mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2024-11-22 01:26:42 +03:00
Minor refactoring
This commit is contained in:
parent
19e08416b5
commit
ec80009812
|
@ -6,6 +6,7 @@ See the file 'LICENSE' for copying permission
|
|||
"""
|
||||
|
||||
import logging
|
||||
import re
|
||||
import sys
|
||||
|
||||
from lib.core.enums import CUSTOM_LOGGING
|
||||
|
@ -20,6 +21,77 @@ LOGGER_HANDLER = None
|
|||
try:
|
||||
from thirdparty.ansistrm.ansistrm import ColorizingStreamHandler
|
||||
|
||||
class _ColorizingStreamHandler(ColorizingStreamHandler):
|
||||
def colorize(self, message, levelno):
|
||||
if levelno in self.level_map and self.is_tty:
|
||||
bg, fg, bold = self.level_map[levelno]
|
||||
params = []
|
||||
|
||||
if bg in self.color_map:
|
||||
params.append(str(self.color_map[bg] + 40))
|
||||
|
||||
if fg in self.color_map:
|
||||
params.append(str(self.color_map[fg] + 30))
|
||||
|
||||
if bold:
|
||||
params.append('1')
|
||||
|
||||
if params and message:
|
||||
match = re.search(r"\A(\s+)", message)
|
||||
prefix = match.group(1) if match else ""
|
||||
message = message[len(prefix):]
|
||||
|
||||
match = re.search(r"\[([A-Z ]+)\]", message) # log level
|
||||
if match:
|
||||
level = match.group(1)
|
||||
if message.startswith(self.bold):
|
||||
message = message.replace(self.bold, "")
|
||||
reset = self.reset + self.bold
|
||||
params.append('1')
|
||||
else:
|
||||
reset = self.reset
|
||||
message = message.replace(level, ''.join((self.csi, ';'.join(params), 'm', level, reset)), 1)
|
||||
|
||||
match = re.search(r"\A\s*\[([\d:]+)\]", message) # time
|
||||
if match:
|
||||
time = match.group(1)
|
||||
message = message.replace(time, ''.join((self.csi, str(self.color_map["cyan"] + 30), 'm', time, self._reset(message))), 1)
|
||||
|
||||
match = re.search(r"\[(#\d+)\]", message) # counter
|
||||
if match:
|
||||
counter = match.group(1)
|
||||
message = message.replace(counter, ''.join((self.csi, str(self.color_map["yellow"] + 30), 'm', counter, self._reset(message))), 1)
|
||||
|
||||
if level != "PAYLOAD":
|
||||
if any(_ in message for _ in ("parsed DBMS error message",)):
|
||||
match = re.search(r": '(.+)'", message)
|
||||
if match:
|
||||
string = match.group(1)
|
||||
message = message.replace("'%s'" % string, "'%s'" % ''.join((self.csi, str(self.color_map["white"] + 30), 'm', string, self._reset(message))), 1)
|
||||
else:
|
||||
match = re.search(r"\bresumed: '(.+\.\.\.)", message)
|
||||
if match:
|
||||
string = match.group(1)
|
||||
message = message.replace("'%s" % string, "'%s" % ''.join((self.csi, str(self.color_map["white"] + 30), 'm', string, self._reset(message))), 1)
|
||||
else:
|
||||
match = re.search(r" \('(.+)'\)\Z", message)
|
||||
if match:
|
||||
string = match.group(1)
|
||||
message = message.replace("'%s'" % string, "'%s'" % ''.join((self.csi, str(self.color_map["white"] + 30), 'm', string, self._reset(message))), 1)
|
||||
else:
|
||||
for match in re.finditer(r"[^\w]'([^']+)'", message): # single-quoted
|
||||
string = match.group(1)
|
||||
message = message.replace("'%s'" % string, "'%s'" % ''.join((self.csi, str(self.color_map["white"] + 30), 'm', string, self._reset(message))), 1)
|
||||
else:
|
||||
message = ''.join((self.csi, ';'.join(params), 'm', message, self.reset))
|
||||
|
||||
if prefix:
|
||||
message = "%s%s" % (prefix, message)
|
||||
|
||||
message = message.replace("%s]" % self.bold, "]%s" % self.bold) # dirty patch
|
||||
|
||||
return message
|
||||
|
||||
disableColor = False
|
||||
|
||||
for argument in sys.argv:
|
||||
|
@ -30,7 +102,7 @@ try:
|
|||
if disableColor:
|
||||
LOGGER_HANDLER = logging.StreamHandler(sys.stdout)
|
||||
else:
|
||||
LOGGER_HANDLER = ColorizingStreamHandler(sys.stdout)
|
||||
LOGGER_HANDLER = _ColorizingStreamHandler(sys.stdout)
|
||||
LOGGER_HANDLER.level_map[logging.getLevelName("PAYLOAD")] = (None, "cyan", False)
|
||||
LOGGER_HANDLER.level_map[logging.getLevelName("TRAFFIC OUT")] = (None, "magenta", False)
|
||||
LOGGER_HANDLER.level_map[logging.getLevelName("TRAFFIC IN")] = ("magenta", None, False)
|
||||
|
|
|
@ -18,7 +18,7 @@ from lib.core.enums import OS
|
|||
from thirdparty.six import unichr as _unichr
|
||||
|
||||
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
||||
VERSION = "1.4.2.20"
|
||||
VERSION = "1.4.2.21"
|
||||
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)
|
||||
|
|
54
thirdparty/ansistrm/ansistrm.py
vendored
54
thirdparty/ansistrm/ansistrm.py
vendored
|
@ -156,58 +156,14 @@ class ColorizingStreamHandler(logging.StreamHandler):
|
|||
params.append('1')
|
||||
|
||||
if params and message:
|
||||
match = re.search(r"\A(\s+)", message)
|
||||
prefix = match.group(1) if match else ""
|
||||
if message.lstrip() != message:
|
||||
prefix = re.search(r"\s+", message).group(0)
|
||||
message = message[len(prefix):]
|
||||
|
||||
match = re.search(r"\[([A-Z ]+)\]", message) # log level
|
||||
if match:
|
||||
level = match.group(1)
|
||||
if message.startswith(self.bold):
|
||||
message = message.replace(self.bold, "")
|
||||
reset = self.reset + self.bold
|
||||
params.append('1')
|
||||
else:
|
||||
reset = self.reset
|
||||
message = message.replace(level, ''.join((self.csi, ';'.join(params), 'm', level, reset)), 1)
|
||||
prefix = ""
|
||||
|
||||
match = re.search(r"\A\s*\[([\d:]+)\]", message) # time
|
||||
if match:
|
||||
time = match.group(1)
|
||||
message = message.replace(time, ''.join((self.csi, str(self.color_map["cyan"] + 30), 'm', time, self._reset(message))), 1)
|
||||
|
||||
match = re.search(r"\[(#\d+)\]", message) # counter
|
||||
if match:
|
||||
counter = match.group(1)
|
||||
message = message.replace(counter, ''.join((self.csi, str(self.color_map["yellow"] + 30), 'm', counter, self._reset(message))), 1)
|
||||
|
||||
if level != "PAYLOAD":
|
||||
if any(_ in message for _ in ("parsed DBMS error message",)):
|
||||
match = re.search(r": '(.+)'", message)
|
||||
if match:
|
||||
string = match.group(1)
|
||||
message = message.replace("'%s'" % string, "'%s'" % ''.join((self.csi, str(self.color_map["white"] + 30), 'm', string, self._reset(message))), 1)
|
||||
else:
|
||||
match = re.search(r"\bresumed: '(.+\.\.\.)", message)
|
||||
if match:
|
||||
string = match.group(1)
|
||||
message = message.replace("'%s" % string, "'%s" % ''.join((self.csi, str(self.color_map["white"] + 30), 'm', string, self._reset(message))), 1)
|
||||
else:
|
||||
match = re.search(r" \('(.+)'\)\Z", message)
|
||||
if match:
|
||||
string = match.group(1)
|
||||
message = message.replace("'%s'" % string, "'%s'" % ''.join((self.csi, str(self.color_map["white"] + 30), 'm', string, self._reset(message))), 1)
|
||||
else:
|
||||
for match in re.finditer(r"[^\w]'([^']+)'", message): # single-quoted
|
||||
string = match.group(1)
|
||||
message = message.replace("'%s'" % string, "'%s'" % ''.join((self.csi, str(self.color_map["white"] + 30), 'm', string, self._reset(message))), 1)
|
||||
else:
|
||||
message = ''.join((self.csi, ';'.join(params), 'm', message, self.reset))
|
||||
|
||||
if prefix:
|
||||
message = "%s%s" % (prefix, message)
|
||||
|
||||
message = message.replace("%s]" % self.bold, "]%s" % self.bold) # dirty patch
|
||||
message = "%s%s" % (prefix, ''.join((self.csi, ';'.join(params),
|
||||
'm', message, self.reset)))
|
||||
|
||||
return message
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user