From c8cc56f78bf07ab8dac8be8a2c407c4c13623847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Vinot?= Date: Wed, 20 Jan 2021 20:54:37 +0100 Subject: [PATCH] chg: Improve support of self generated user-agents --- website/web/__init__.py | 20 +++++++++++++------- website/web/static/capture.js | 7 +++++++ website/web/templates/capture.html | 24 ++++++++++++++---------- 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/website/web/__init__.py b/website/web/__init__.py index 5f20938..4a49590 100644 --- a/website/web/__init__.py +++ b/website/web/__init__.py @@ -49,6 +49,7 @@ time_delta_on_index = get_config('generic', 'time_delta_on_index') blur_screenshot = get_config('generic', 'enable_default_blur_screenshot') max_depth = get_config('generic', 'max_depth') +use_own_ua = get_config('generic', 'use_user_agents_users') enable_mail_notification = get_config('generic', 'enable_mail_notification') enable_context_by_users = get_config('generic', 'enable_context_by_users') enable_categorization = get_config('generic', 'enable_categorization') @@ -449,7 +450,10 @@ def index(): if request.method == 'HEAD': # Just returns ack if the webserver is running return 'Ack' - update_user_agents() + if use_own_ua: + lookyloo.build_ua_file() + else: + update_user_agents() return index_generic() @@ -538,14 +542,16 @@ def capture_web(): os=os, browser=browser) return redirect(url_for('tree', tree_uuid=perma_uuid)) user_agents: Dict[str, Any] = {} - if get_config('generic', 'use_user_agents_users'): - lookyloo.build_ua_file() - # NOTE: For now, just generate the file, so we have an idea of the size - # user_agents = get_user_agents('own_user_agents') + if use_own_ua: + user_agents = get_user_agents('own_user_agents') if not user_agents: user_agents = get_user_agents() - user_agents.pop('by_frequency') - return render_template('capture.html', user_agents=user_agents, + # get most frequest UA that isn't a bot (yes, it is dirty.) + for ua in user_agents.pop('by_frequency'): + if 'bot' not in ua['useragent'].lower(): + default_ua = ua + break + return render_template('capture.html', user_agents=user_agents, default=default_ua, max_depth=max_depth, personal_ua=request.headers.get('User-Agent')) diff --git a/website/web/static/capture.js b/website/web/static/capture.js index df978f3..cf63fcb 100644 --- a/website/web/static/capture.js +++ b/website/web/static/capture.js @@ -2,15 +2,20 @@ $("#os").change(function(){ var os_name = $(this).find(":selected").val().replace(/(:|\.|\[|\]|,|=)/g, "\\$1").replace(/ /g,"_"); var first_browser_name = $("[id='" + os_name + "']").find('select option:first-child').val().replace(/(:|\.|\[|\]|,|=)/g, "\\$1").replace(/ /g,"_"); // Hide and disable everything + $("#os > option").removeAttr('selected'); $(".style-sub-1").hide(); $(".style-sub-1 > div > select").attr('disabled', true); + $(".style-sub-1 > div > select").removeAttr('selected'); $(".style-sub-2").hide(); $(".style-sub-2 > div > select").attr('disabled', true); + $(".style-sub-2 > div > select").removeAttr('selected'); $("[id='" + os_name + "']").show(); $("[id='" + os_name + "'] > div > select").removeAttr('disabled'); + $("[id='" + os_name + "'] > div > select option:first").prop('selected',true); $("[id='" + os_name + '_' + first_browser_name + "']").show(); $("[id='" + os_name + '_' + first_browser_name + "'] > div > select").removeAttr('disabled'); + $("[id='" + os_name + '_' + first_browser_name + "'] > div > select option:first").prop('selected',true); }); $('select[name="browser"]').change(function(){ @@ -18,8 +23,10 @@ $('select[name="browser"]').change(function(){ var os_name = $(this).parent().parent().attr("id").replace(/(:|\.|\[|\]|,|=)/g, "\\$1").replace(/ /g,"_"); // Hide what makes sense + $(".style-sub-1 > div > select").removeAttr('selected'); $(".style-sub-2").hide(); $(".style-sub-2 > div > select").attr('disabled', true); + $(".style-sub-2 > div > select").removeAttr('selected'); $("[id='" + os_name + '_' + browser_name + "']").show(); $("[id='" + os_name + '_' + browser_name + "'] > div > select").removeAttr('disabled'); diff --git a/website/web/templates/capture.html b/website/web/templates/capture.html index 3119ff6..90fe0bd 100644 --- a/website/web/templates/capture.html +++ b/website/web/templates/capture.html @@ -94,33 +94,37 @@
{% for os, browsers in user_agents.items() %} -
+ +
- - {% for browser in browsers.keys()%} - + + {% endfor%}
- {% set outer_loop = loop %} {% for browser, user_agents in browsers.items()%} -