From 10169e48946b2d8b3e46cee93420bda245ce6d4a Mon Sep 17 00:00:00 2001 From: ziirish Date: Wed, 6 Oct 2021 17:23:48 +0200 Subject: [PATCH] fix: don't throw exceptions when the burp directory is not found --- burpui/misc/backend/burp1.py | 15 ++++++++++++--- burpui/misc/backend/burp2.py | 9 +++++---- burpui/misc/backend/utils/burp2.py | 4 +++- share/burpui/etc/burpui.sample.cfg | 2 +- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/burpui/misc/backend/burp1.py b/burpui/misc/backend/burp1.py index e1b1bf15..320bbfd2 100644 --- a/burpui/misc/backend/burp1.py +++ b/burpui/misc/backend/burp1.py @@ -899,15 +899,24 @@ class Burp(BUIbackend): def is_server_backup(self, client=None, agent=None): """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): """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): """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): """See :func:`burpui.misc.backend.interface.BUIbackend.delete_backup`""" diff --git a/burpui/misc/backend/burp2.py b/burpui/misc/backend/burp2.py index e04f4568..312673ba 100644 --- a/burpui/misc/backend/burp2.py +++ b/burpui/misc/backend/burp2.py @@ -632,10 +632,11 @@ class Burp(Burp1): cli["last"] = utc_to_local(infos["timestamp"]) if last_attempt: last_backup = self._get_last_backup(client["name"]) - if convert: - cli["last_attempt"] = utc_to_local(last_backup["timestamp"]) - else: - cli["last_attempt"] = last_backup["timestamp"] + if last_attempt: + if convert: + cli["last_attempt"] = utc_to_local(last_backup["timestamp"]) + else: + cli["last_attempt"] = last_backup["timestamp"] ret.append(cli) return ret diff --git a/burpui/misc/backend/utils/burp2.py b/burpui/misc/backend/utils/burp2.py index 4395a3ae..f2653b9a 100644 --- a/burpui/misc/backend/utils/burp2.py +++ b/burpui/misc/backend/utils/burp2.py @@ -51,6 +51,8 @@ class Monitor(object): _last_status_cleanup = datetime.datetime.now() _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): """ :param app: ``Burp-UI`` server instance in order to access logger @@ -222,7 +224,7 @@ class Monitor(object): return True if not self._server_version: if "logline" in jso: - ret = re.search(r"^Server version: (\d+\.\d+\.\d+).*$", jso["logline"]) + ret = self._ignore_logs.search(jso["logline"]) if ret: self._server_version = ret.group(1) if self.server_version >= BURP_LIST_BATCH: diff --git a/share/burpui/etc/burpui.sample.cfg b/share/burpui/etc/burpui.sample.cfg index c5b8fc41..f9eec8fd 100644 --- a/share/burpui/etc/burpui.sample.cfg +++ b/share/burpui/etc/burpui.sample.cfg @@ -31,7 +31,7 @@ plugins = none # refresh interval of the pages in seconds refresh = 180 # refresh interval of the live-monitoring page in seconds -liverefresh = 5 +liverefresh = 30 # list of labels to ignore (you can use regex) ignore_labels = "color:.*", "custom:.*" # format label using sed-like syntax