Internal server error when backup is running
Hello,
When burp backup is running (doing backups), burp-ui fails with error 500:
ERROR in app.log_exception [/usr/local/lib/python2.7/dist-packages/flask/app.py:1560]:
Exception on /api/clients/stats [GET]
--------------------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/local/lib/python2.7/dist-packages/burpui/api/__init__.py", line 69, in decorated_view
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/flask_restplus/api.py", line 313, in wrapper
resp = resource(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/flask/views.py", line 84, in view
return self.dispatch_request(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/flask_restplus/resource.py", line 44, in dispatch_request
resp = meth(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/flask_cache/__init__.py", line 297, in decorated_function
rv = f(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/burpui/api/custom/namespace.py", line 31, in wrapper
resp = f(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/burpui/api/clients.py", line 465, in get
jso = bui.client.get_all_clients(agent=server)
File "/usr/local/lib/python2.7/dist-packages/burpui/misc/backend/burp2.py", line 849, in get_all_clients
cli['phase'] = client['phase']
KeyError: 'phase'
I've fixed it by:
Line 849 of backend/burp2.py contains:
cli['phase'] = client['phase']
Changed to:
if 'phase' in client:
cli['phase'] = client['phase']
Should fix the problem.
Also:
File "/usr/local/lib/python2.7/dist-packages/burpui/misc/backend/burp2.py", line 677, in get_counters
for counter in backup['counters']:
Line 677:
for counter in backup['counters']:
Replaced with:
for counter in backup.get('counters', {}):
Hope it helps.
Edited by radixcl