mirror of
https://github.com/ziirish/burp-ui.git
synced 2026-05-21 06:45:24 -06:00
fix bugs + cosmetic for #16
This commit is contained in:
parent
433c822c0b
commit
1286b64367
10 changed files with 71 additions and 39 deletions
|
|
@ -15,7 +15,6 @@ class Burp(BUIbackend):
|
|||
def __init__(self, app=None, conf=None):
|
||||
self.app = app
|
||||
self.servers = {}
|
||||
self.servers_status = {}
|
||||
self.app.config['SERVERS'] = []
|
||||
if conf:
|
||||
config = ConfigParser.ConfigParser()
|
||||
|
|
@ -35,12 +34,7 @@ class Burp(BUIbackend):
|
|||
|
||||
self.app.logger.debug(self.servers)
|
||||
for key, serv in self.servers.iteritems():
|
||||
self.servers_status[key] = {'clients': [], 'alive': serv.ping()}
|
||||
self.app.config['SERVERS'].append(key)
|
||||
if not serv.connected:
|
||||
continue
|
||||
for c in serv.get_all_clients(key):
|
||||
self.servers_status[key]['clients'].append(c['name'])
|
||||
|
||||
"""
|
||||
Utilities functions
|
||||
|
|
@ -112,9 +106,7 @@ class NClient(BUIbackend):
|
|||
self.port = port
|
||||
self.password = password
|
||||
self.ssl = ssl
|
||||
self.nok = False
|
||||
self.connected = False
|
||||
self.retry = False
|
||||
self.app = app
|
||||
|
||||
def conn(self):
|
||||
|
|
@ -123,7 +115,6 @@ class NClient(BUIbackend):
|
|||
return
|
||||
self.sock = socket.create_connection((self.host, self.port))
|
||||
self.connected = True
|
||||
self.retry = False
|
||||
self.app.logger.debug('OK, connected to agent %s:%s', self.host, self.port)
|
||||
except Exception, e:
|
||||
self.connected = False
|
||||
|
|
@ -135,15 +126,15 @@ class NClient(BUIbackend):
|
|||
return res
|
||||
|
||||
def close(self):
|
||||
self.sock.close()
|
||||
if self.connected:
|
||||
self.sock.close()
|
||||
self.connected = False
|
||||
|
||||
def do_command(self, data=None):
|
||||
self.conn()
|
||||
res = []
|
||||
res = '[]'
|
||||
if not data:
|
||||
return
|
||||
old_data = data
|
||||
return res
|
||||
try:
|
||||
data['password'] = self.password
|
||||
raw = json.dumps(data)
|
||||
|
|
@ -151,39 +142,38 @@ class NClient(BUIbackend):
|
|||
self.sock.sendall(struct.pack('!Q', length))
|
||||
self.sock.sendall(raw)
|
||||
self.app.logger.debug("Sending: %s", raw)
|
||||
#time.sleep(1)
|
||||
res = self.recvall(2)
|
||||
self.app.logger.debug("recv: '%s'", res)
|
||||
if 'OK' != res:
|
||||
tmp = self.recvall(2)
|
||||
self.app.logger.debug("recv: '%s'", tmp)
|
||||
if 'OK' != tmp:
|
||||
self.app.logger.debug('Ooops, unsuccessful!')
|
||||
return res
|
||||
self.app.logger.debug("Data sent successfully")
|
||||
lengthbuf = self.recvall(8)
|
||||
lengthbuf = self.recvall(8, False)
|
||||
length, = struct.unpack('!Q', lengthbuf)
|
||||
res = self.recvall(length)
|
||||
except Exception, e:
|
||||
self.app.logger.error(str(e))
|
||||
if not self.retry:
|
||||
self.retry = True
|
||||
res = self.do_command(old_data)
|
||||
finally:
|
||||
self.close()
|
||||
return res
|
||||
return res
|
||||
|
||||
def recvall(self, length=1024):
|
||||
def recvall(self, length=1024, debug=True, timeout=5):
|
||||
buf = b''
|
||||
bsize = 1024
|
||||
received = 0
|
||||
tries = 0
|
||||
if length < bsize:
|
||||
bsize = length
|
||||
while received < length:
|
||||
while received < length and tries < timeout:
|
||||
newbuf = self.sock.recv(bsize)
|
||||
if not newbuf:
|
||||
tries += 1
|
||||
time.sleep(0.1)
|
||||
continue
|
||||
buf += newbuf
|
||||
received += len(newbuf)
|
||||
self.app.logger.debug('result (%d/%d): %s', length, len(buf), buf)
|
||||
if debug:
|
||||
self.app.logger.debug('result (%d/%d): %s', length, len(buf), buf)
|
||||
return buf
|
||||
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -81,8 +81,8 @@ def render_live_tpl(server=None, name=None):
|
|||
@login_required
|
||||
def servers_json():
|
||||
r = []
|
||||
for serv in bui.cli.servers_status:
|
||||
r.append({'name': serv, 'clients': len(bui.cli.servers_status[serv]['clients']), 'alive': bui.cli.servers_status[serv]['alive']})
|
||||
for serv in bui.cli.servers:
|
||||
r.append({'name': serv, 'clients': len(bui.cli.servers[serv].get_all_clients(serv)), 'alive': bui.cli.servers[serv].ping()})
|
||||
return jsonify(results=r)
|
||||
|
||||
@app.route('/api/live.json')
|
||||
|
|
|
|||
|
|
@ -4,9 +4,16 @@
|
|||
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
|
||||
{% include "small_topbar.html" %}
|
||||
<ul class="breadcrumb" style="margin-bottom: 5px;">
|
||||
{% if server -%}
|
||||
<li><a href="{{ url_for('home') }}">Home</a></li>
|
||||
<li><a href="{{ url_for('clients', server=server) }}">{{ server }} clients</a></li>
|
||||
<li><a href="{{ url_for('client', name=cname, server=server) }}">{{ cname }} overview</a></li>
|
||||
<li class="active">Backup n°{{ nbackup|mypad }} overview</li>
|
||||
{% else -%}
|
||||
<li><a href="{{ url_for('home') }}">Home</a></li>
|
||||
<li><a href="{{ url_for('client', name=cname) }}">{{ cname }} overview</a></li>
|
||||
<li class="active">Backup n°{{ nbackup|mypad }} overview</li>
|
||||
{% endif -%}
|
||||
</ul>
|
||||
<br />
|
||||
<h1 class="page-header">Backup n°{{ nbackup|mypad }} of {{ cname }}</h1>
|
||||
|
|
|
|||
|
|
@ -4,10 +4,17 @@
|
|||
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
|
||||
{% include "small_topbar.html" %}
|
||||
<ul class="breadcrumb" style="margin-bottom: 5px;">
|
||||
<li><a href="{{ url_for('home') }}">Home</a></li>
|
||||
{% if server -%}
|
||||
<li><a href="{{ url_for('home') }}">Home</a></li>
|
||||
<li><a href="{{ url_for('clients', server=server) }}">{{ server }} clients</a></li>
|
||||
<li><a href="{{ url_for('client', name=cname, server=server) }}">{{ cname }} overview</a></li>
|
||||
<li class="active">Backup n°{{ nbackup|mypad }} overview</li>
|
||||
{% else -%}
|
||||
<li><a href="{{ url_for('home') }}">Home</a></li>
|
||||
<li><a href="{{ url_for('client', name=cname) }}">{{ cname }} overview</a></li>
|
||||
<li class="active">Backup n°{{ nbackup|mypad }} overview</li>
|
||||
</ul>
|
||||
<li class="active">Backup n°{{ nbackup|mypad }} overview</li>
|
||||
{% endif -%}
|
||||
</ul>
|
||||
<br />
|
||||
<h1 class="page-header">Backup n°{{ nbackup|mypad }} of {{ cname }}</h1>
|
||||
<div class="row">
|
||||
|
|
|
|||
|
|
@ -4,8 +4,14 @@
|
|||
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
|
||||
{% include "small_topbar.html" %}
|
||||
<ul class="breadcrumb" style="margin-bottom: 5px;">
|
||||
{% if server -%}
|
||||
<li><a href="{{ url_for('home') }}">Home</a></li>
|
||||
<li><a href="{{ url_for('clients', server=server) }}">{{ server }} clients</a></li>
|
||||
<li class="active">{{ cname }} overview</li>
|
||||
{% else -%}
|
||||
<li><a href="{{ url_for('home') }}">Home</a></li>
|
||||
<li class="active">{{ cname }} overview</li>
|
||||
{% endif -%}
|
||||
</ul>
|
||||
<br />
|
||||
<h1 class="page-header">{{ cname }}</h1>
|
||||
|
|
|
|||
|
|
@ -3,10 +3,16 @@
|
|||
{% include "notifications.html" %}
|
||||
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
|
||||
{% include "small_topbar.html" %}
|
||||
<ul class="breadcrumb" style="margin-bottom: 5px;">
|
||||
<li><a href="{{ url_for('home') }}">Home</a></li>
|
||||
<ul class="breadcrumb" style="margin-bottom: 5px;">
|
||||
{% if server -%}
|
||||
<li><a href="{{ url_for('home') }}">Home</a></li>
|
||||
<li><a href="{{ url_for('clients', server=server) }}">{{ server }} clients</a></li>
|
||||
<li class="active">{{ cname }} overview</li>
|
||||
</ul>
|
||||
{% else -%}
|
||||
<li><a href="{{ url_for('home') }}">Home</a></li>
|
||||
<li class="active">{{ cname }} overview</li>
|
||||
{% endif -%}
|
||||
</ul>
|
||||
<br />
|
||||
<h1 class="page-header">{{ cname }}</h1>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,12 @@
|
|||
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
|
||||
{% include "small_topbar.html" %}
|
||||
<ul class="breadcrumb" style="margin-bottom: 5px;">
|
||||
{% if server -%}
|
||||
<li><a href="{{ url_for('home') }}">Home</a></li>
|
||||
<li class="active">{{ server }} clients</li>
|
||||
{% else -%}
|
||||
<li class="active">Home</li>
|
||||
{% endif -%}
|
||||
</ul>
|
||||
<br />
|
||||
<h1 class="page-header">Global server report</h1>
|
||||
|
|
|
|||
|
|
@ -3,9 +3,14 @@
|
|||
{% include "notifications.html" %}
|
||||
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
|
||||
{% include "small_topbar.html" %}
|
||||
<ul class="breadcrumb" style="margin-bottom: 5px;">
|
||||
<li class="active">Home</li>
|
||||
</ul>
|
||||
<ul class="breadcrumb" style="margin-bottom: 5px;">
|
||||
{% if server -%}
|
||||
<li><a href="{{ url_for('home') }}">Home</a></li>
|
||||
<li class="active">{{ server }} clients</li>
|
||||
{% else -%}
|
||||
<li class="active">Home</li>
|
||||
{% endif -%}
|
||||
</ul>
|
||||
<br />
|
||||
<h1 class="page-header">Clients</h1>
|
||||
|
||||
|
|
|
|||
|
|
@ -23,11 +23,13 @@ var _servers = function() {
|
|||
$.each(data.results, function(j, c) {
|
||||
cl = '';
|
||||
glyph = 'glyphicon-ok';
|
||||
href = '{{ url_for("clients") }}?server='+c.name;
|
||||
if (!c.alive) {
|
||||
cl = ' danger';
|
||||
glyph = 'glyphicon-remove';
|
||||
href = '#';
|
||||
}
|
||||
$('#table-servers > tbody:last').append('<tr class="clickable'+cl+'" style="cursor: pointer;"><td><a href="{{ url_for("clients") }}?server='+c.name+'" style="color: inherit; text-decoration: inherit;">'+c.name+'</a></td><td>'+c.clients+'</td><td><span class="glyphicon '+glyph+'"></span></td></tr>');
|
||||
$('#table-servers > tbody:last').append('<tr class="clickable'+cl+'" style="cursor: pointer;"><td><a href="'+href+'" style="color: inherit; text-decoration: inherit;">'+c.name+'</a></td><td>'+c.clients+'</td><td><span class="glyphicon '+glyph+'"></span></td></tr>');
|
||||
});
|
||||
});
|
||||
};
|
||||
|
|
|
|||
|
|
@ -12,9 +12,13 @@
|
|||
<div class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
{% if not config.STANDALONE -%}
|
||||
<li class="detail"><a href="{{ url_for('home') }}"><span class="glyphicon glyphicon-hdd"></span><span class="dtl hidden-md hidden-lg"> Servers</span></a></li>
|
||||
{% endif -%}
|
||||
<li class="detail {% if not server %}active{% endif %}"><a href="{{ url_for('home') }}"><span class="glyphicon glyphicon-hdd"></span><span class="dtl hidden-md hidden-lg"> Servers</span></a></li>
|
||||
{% if server -%}
|
||||
<li class="detail{% if clients %} active{% endif %}"><a href="{{ url_for('clients', server=server) }}"><span class="glyphicon glyphicon-tasks"></span><span class="dtl hidden-md hidden-lg"> Clients</span></a></li>
|
||||
{% endif -%}
|
||||
{% else -%}
|
||||
<li class="detail{% if clients %} active{% endif %}"><a href="{{ url_for('home') }}"><span class="glyphicon glyphicon-tasks"></span><span class="dtl hidden-md hidden-lg"> Clients</span></a></li>
|
||||
{% endif -%}
|
||||
<li class="detail disabled"><a href="#"><span class="glyphicon glyphicon-wrench"></span><span class="dtl hidden-md hidden-lg"> Settings</span></a></li>
|
||||
<li class="detail{% if live %} active{% endif %}"><a href="{{ url_for('live_monitor', server=server) }}"><span id="toblink" class="glyphicon glyphicon-screenshot"></span><span class="dtl hidden-md hidden-lg"> Live monitor</span></a></li>
|
||||
{% if current_user and current_user.is_authenticated() -%}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue