fix: don't throw exceptions when the burp directory is not found

This commit is contained in:
ziirish 2021-10-06 17:23:48 +02:00
parent edde0b710f
commit 10169e4894
No known key found for this signature in database
GPG key ID: 72DB229A64B54E46
4 changed files with 21 additions and 9 deletions

View file

@ -899,15 +899,24 @@ class Burp(BUIbackend):
def is_server_backup(self, client=None, agent=None): def is_server_backup(self, client=None, agent=None):
"""See :func:`burpui.misc.backend.interface.BUIbackend.is_server_backup`""" """See :func:`burpui.misc.backend.interface.BUIbackend.is_server_backup`"""
return self.parser.read_backup(client) try:
return self.parser.read_backup(client)
except BUIserverException:
return None
def cancel_server_backup(self, client=None, agent=None): def cancel_server_backup(self, client=None, agent=None):
"""See :func:`burpui.misc.backend.interface.BUIbackend.cancel_server_backup`""" """See :func:`burpui.misc.backend.interface.BUIbackend.cancel_server_backup`"""
return self.parser.cancel_backup(client) try:
return self.parser.cancel_backup(client)
except BUIserverException:
return None
def server_backup(self, client=None, agent=None): def server_backup(self, client=None, agent=None):
"""See :func:`burpui.misc.backend.interface.BUIbackend.server_backup`""" """See :func:`burpui.misc.backend.interface.BUIbackend.server_backup`"""
return self.parser.server_initiated_backup(client) try:
return self.parser.server_initiated_backup(client)
except BUIserverException:
return None
def delete_backup(self, name=None, backup=None, agent=None): def delete_backup(self, name=None, backup=None, agent=None):
"""See :func:`burpui.misc.backend.interface.BUIbackend.delete_backup`""" """See :func:`burpui.misc.backend.interface.BUIbackend.delete_backup`"""

View file

@ -632,10 +632,11 @@ class Burp(Burp1):
cli["last"] = utc_to_local(infos["timestamp"]) cli["last"] = utc_to_local(infos["timestamp"])
if last_attempt: if last_attempt:
last_backup = self._get_last_backup(client["name"]) last_backup = self._get_last_backup(client["name"])
if convert: if last_attempt:
cli["last_attempt"] = utc_to_local(last_backup["timestamp"]) if convert:
else: cli["last_attempt"] = utc_to_local(last_backup["timestamp"])
cli["last_attempt"] = last_backup["timestamp"] else:
cli["last_attempt"] = last_backup["timestamp"]
ret.append(cli) ret.append(cli)
return ret return ret

View file

@ -51,6 +51,8 @@ class Monitor(object):
_last_status_cleanup = datetime.datetime.now() _last_status_cleanup = datetime.datetime.now()
_time_to_cache = datetime.timedelta(seconds=3) _time_to_cache = datetime.timedelta(seconds=3)
_ignore_logs = re.compile(r"^Server version: (\d+\.\d+\.\d+).*$")
def __init__(self, burpbin, burpconf, app=None, timeout=5, ident=None): def __init__(self, burpbin, burpconf, app=None, timeout=5, ident=None):
""" """
:param app: ``Burp-UI`` server instance in order to access logger :param app: ``Burp-UI`` server instance in order to access logger
@ -222,7 +224,7 @@ class Monitor(object):
return True return True
if not self._server_version: if not self._server_version:
if "logline" in jso: if "logline" in jso:
ret = re.search(r"^Server version: (\d+\.\d+\.\d+).*$", jso["logline"]) ret = self._ignore_logs.search(jso["logline"])
if ret: if ret:
self._server_version = ret.group(1) self._server_version = ret.group(1)
if self.server_version >= BURP_LIST_BATCH: if self.server_version >= BURP_LIST_BATCH:

View file

@ -31,7 +31,7 @@ plugins = none
# refresh interval of the pages in seconds # refresh interval of the pages in seconds
refresh = 180 refresh = 180
# refresh interval of the live-monitoring page in seconds # refresh interval of the live-monitoring page in seconds
liverefresh = 5 liverefresh = 30
# list of labels to ignore (you can use regex) # list of labels to ignore (you can use regex)
ignore_labels = "color:.*", "custom:.*" ignore_labels = "color:.*", "custom:.*"
# format label using sed-like syntax # format label using sed-like syntax