From cec2015f8d12ed52182ecedfef44c61ca95a7085 Mon Sep 17 00:00:00 2001 From: ziirish Date: Tue, 26 Aug 2014 11:41:15 +0200 Subject: [PATCH] fix configuration file lookup --- bin/burp-ui | 19 ++++++++++++++----- burpui/__init__.py | 6 +++--- burpui/misc/auth/ldap.py | 6 +++++- burpui/server.py | 5 ++++- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/bin/burp-ui b/bin/burp-ui index fb380eeb..fcabd5cd 100755 --- a/bin/burp-ui +++ b/bin/burp-ui @@ -2,6 +2,7 @@ # -*- coding: utf8 -*- import sys import os +import os.path from optparse import OptionParser sys.path.append('{0}/..'.format(os.path.join(os.path.dirname(os.path.realpath(__file__))))) @@ -21,12 +22,20 @@ if __name__ == '__main__': app.config['DEBUG'] = d if options.config: - conf = options.config + if os.path.isfile(options.config): + conf = options.config + app.config['CFG'] = conf + else: + raise IOError('File not found: \'{0}\''.format(options.config)) else: - conf = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'burpui.cfg') + conf_files = ['/etc/burp/burpui.cfg', os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', 'share', 'burpui', 'etc', 'burpui.cfg')] + for p in conf_files: + app.logger.debug('Trying file \'%s\'', p) + if os.path.isfile(p): + app.config['CFG'] = p + app.logger.debug('Using file \'%s\'', p) + break - app.config['CFG'] = conf - - bui.setup(conf) + bui.setup(app.config['CFG']) bui.run(d) diff --git a/burpui/__init__.py b/burpui/__init__.py index 33712833..6839d5e9 100644 --- a/burpui/__init__.py +++ b/burpui/__init__.py @@ -1,17 +1,17 @@ -#!/usr/bin/env python # -*- coding: utf8 -*- __title__ = 'burp-ui' __author__ = 'Benjamin SANS (Ziirish)' __license__ = 'BSD 3-clause' -import os from flask import Flask from flask.ext.login import LoginManager from burpui.server import Server as BurpUI app = Flask(__name__) -app.config['CFG'] = os.path.join(app.root_path, '../burpui.cfg') + +app.config['CFG'] = None + app.secret_key = 'VpgOXNXAgcO81xFPyWj07ppN6kExNZeCDRShseNzFKV7ZCgmW2/eLn6xSlt7pYAVBj12zx2Vv9Kw3Q3jd1266A==' app.jinja_env.globals.update(isinstance=isinstance,list=list) diff --git a/burpui/misc/auth/ldap.py b/burpui/misc/auth/ldap.py index f5a9fd32..eeb9913f 100644 --- a/burpui/misc/auth/ldap.py +++ b/burpui/misc/auth/ldap.py @@ -2,7 +2,11 @@ from flask.ext.login import UserMixin from burpui.misc.auth.interface import BUIhandler, BUIuser -import simpleldap +try: + import simpleldap +except ImportError: + raise ImportError('Unable to load \'simpleldap\' module') + import ConfigParser class LdapLoader: diff --git a/burpui/server.py b/burpui/server.py index 71ce0324..8d11d014 100644 --- a/burpui/server.py +++ b/burpui/server.py @@ -11,7 +11,7 @@ g_ssl = False g_sslcert = '' g_sslkey = '' g_version = 1 -g_auth = 'ldap' +g_auth = 'basic' class Server: def __init__(self, app=None): @@ -24,6 +24,9 @@ class Server: if not conf: conf = self.app.config['CFG'] + if not conf: + raise IOError('No configuration file found') + config = ConfigParser.ConfigParser({'bport': g_burpport, 'bhost': g_burphost, 'port': g_port, 'bind': g_bind, 'refresh': g_refresh, 'ssl': g_ssl, 'sslcert': g_sslcert, 'sslkey': g_sslkey, 'version': g_version, 'auth': g_auth})