From dbe67e094befdba41029877b0de96540d4897bb7 Mon Sep 17 00:00:00 2001 From: Terrtia Date: Tue, 29 May 2018 17:17:02 +0200 Subject: [PATCH] galaxies synonyms --- var/www/modules/Tags/Flask_Tags.py | 234 +++++++++++++----- var/www/modules/Tags/templates/Tags.html | 28 ++- .../modules/Tags/templates/edit_galaxy.html | 14 +- .../Tags/templates/edit_taxonomie.html | 21 +- var/www/modules/Tags/templates/tagged.html | 33 ++- .../browsepastes/Flask_browsepastes.py | 2 - .../templates/important_paste_by_module.html | 4 +- var/www/modules/search/Flask_search.py | 2 - var/www/modules/search/templates/search.html | 4 +- var/www/modules/showpaste/Flask_showpaste.py | 6 +- .../showpaste/templates/show_saved_paste.html | 87 +++++-- var/www/static/js/tags.js | 4 +- 12 files changed, 313 insertions(+), 126 deletions(-) diff --git a/var/www/modules/Tags/Flask_Tags.py b/var/www/modules/Tags/Flask_Tags.py index c975a928..5d1a4b14 100644 --- a/var/www/modules/Tags/Flask_Tags.py +++ b/var/www/modules/Tags/Flask_Tags.py @@ -58,7 +58,18 @@ def get_all_tags(): list_tags = [] for tag in all_tags: - list_tags.append( tag ) + t = tag.split(':')[0] + # add synonym + str_synonyms = ' - synonyms: ' + if t == 'misp-galaxy': + synonyms = r_serv_tags.smembers('synonym_tag_' + tag) + for synonym in synonyms: + str_synonyms = str_synonyms + synonym + ', ' + # add real tag + if str_synonyms != ' - synonyms: ': + list_tags.append({'name':tag + str_synonyms,'id':tag}) + else: + list_tags.append({'name':tag,'id':tag}) return jsonify(list_tags) @@ -79,6 +90,28 @@ def get_all_tags_taxonomies(): return jsonify(list_tags) +@Tags.route("/Tags/get_all_tags_galaxies") +def get_all_tags_galaxy(): + + active_galaxies = r_serv_tags.smembers('active_galaxies') + + list_tags = [] + for galaxy in active_galaxies: + l_tags = r_serv_tags.smembers('active_tag_galaxies_' + galaxy) + for tag in l_tags: + str_synonyms = ' - synonyms: ' + synonyms = r_serv_tags.smembers('synonym_tag_' + tag) + # synonyms to display + for synonym in synonyms: + str_synonyms = str_synonyms + synonym + ', ' + # add real tag + if str_synonyms != ' - synonyms: ': + list_tags.append({'name':tag + str_synonyms,'id':tag}) + else: + list_tags.append({'name':tag,'id':tag}) + + return jsonify(list_tags) + @Tags.route("/Tags/get_tags_taxonomie") def get_tags_taxonomie(): @@ -102,10 +135,38 @@ def get_tags_taxonomie(): return jsonify(list_tags) else: - return 'this taxinomie is disable' + return 'this taxonomie is disable' else: return 'INCORRECT INPUT' +@Tags.route("/Tags/get_tags_galaxy") +def get_tags_galaxy(): + + galaxy = request.args.get('galaxy') + + active_galaxies = r_serv_tags.smembers('active_galaxies') + + #verify input + if galaxy in active_galaxies: + + list_tags = [] + l_tags = r_serv_tags.smembers('active_tag_galaxies_' + galaxy) + for tag in l_tags: + synonyms = r_serv_tags.smembers('synonym_tag_' + tag) + str_synonyms = ' - synonyms: ' + for synonym in synonyms: + str_synonyms = str_synonyms + synonym + ', ' + # add real tag + if str_synonyms != ' - synonyms: ': + list_tags.append({'name':tag + str_synonyms,'id':tag}) + else: + list_tags.append({'name':tag,'id':tag}) + + return jsonify(list_tags) + + else: + return 'this galaxy is disable' + @Tags.route("/Tags/get_tagged_paste") def get_tagged_paste(): @@ -140,7 +201,6 @@ def get_tagged_paste(): bootstrap_label.append('danger') bootstrap_label.append('warning') bootstrap_label.append('info') - bootstrap_label.append('dark') all_content = [] paste_date = [] @@ -209,6 +269,9 @@ def remove_tag(): r_serv_metadata.srem('tag:'+path, tag) r_serv_tags.srem(tag, path) + if r_serv_tags.scard(tag) == 0: + r_serv_tags.srem('list_tags', tag) + return redirect(url_for('showsavedpastes.showsavedpaste', paste=path)) @Tags.route("/Tags/confirm_tag") @@ -239,80 +302,60 @@ def confirm_tag(): def addTags(): tags = request.args.get('tags') + tagsgalaxies = request.args.get('tagsgalaxies') path = request.args.get('path') list_tag = tags.split(',') + list_tag_galaxies = tagsgalaxies.split(',') taxonomies = Taxonomies() active_taxonomies = r_serv_tags.smembers('active_taxonomies') + active_galaxies = r_serv_tags.smembers('active_galaxies') + if not path: - return 'INCORRECT INPUT' + return 'INCORRECT INPUT0' - for tag in list_tag: - # verify input - tax = tag.split(':')[0] - if tax in active_taxonomies: - if tag in r_serv_tags.smembers('active_tag_' + tax): + if list_tag != ['']: + for tag in list_tag: + # verify input + tax = tag.split(':')[0] + if tax in active_taxonomies: + if tag in r_serv_tags.smembers('active_tag_' + tax): - #add tag - r_serv_metadata.sadd('tag:'+path, tag) - r_serv_tags.sadd(tag, path) - #add new tag in list of all used tags - r_serv_tags.sadd('list_tags', tag) + #add tag + r_serv_metadata.sadd('tag:'+path, tag) + r_serv_tags.sadd(tag, path) + #add new tag in list of all used tags + r_serv_tags.sadd('list_tags', tag) + else: + return 'INCORRECT INPUT1' else: - return 'INCORRECT INPUT' - else: - return 'INCORRECT INPUT' + return 'INCORRECT INPUT2' - return redirect(url_for('showsavedpastes.showsavedpaste', paste=path)) + if list_tag_galaxies != ['']: + for tag in list_tag_galaxies: + # verify input + gal = tag.split(':')[1] + gal = gal.split('=')[0] + print(tag) + print(gal) + print(active_galaxies) + if gal in active_galaxies: + if tag in r_serv_tags.smembers('active_tag_galaxies_' + gal): -@Tags.route("/Tags/thumbs_up_paste") -def thumbs_up_paste(): + print('adding ...') + #add tag + r_serv_metadata.sadd('tag:'+path, tag) + r_serv_tags.sadd(tag, path) + #add new tag in list of all used tags + r_serv_tags.sadd('list_tags', tag) - #TODO verify input - path = request.args.get('paste') - - '''positive_t = 'infoleak:confirmed="true-positive"' - positive_f = 'infoleak:confirmed="false-positive"' - - negative_t = 'infoleak:confirmed="true-negative"' - - list_tags = r_serv_metadata.smembers('tag:'+path) - - if(list_tags > 0): - - if positive_f in list_tags: - r_serv_metadata.srem('tag:'+path, positive_f) - r_serv_metadata.sadd('tag:'+path, positive_t) - - r_serv_tags.srem(positive_f, path) - r_serv_tags.sadd(positive_t, path) - #add new tag in list of all used tags - r_serv_tags.sadd('list_tags', positive_t) - - return redirect(url_for('showsavedpastes.showsavedpaste', paste=path)) - - - - if positive_t in list_tags: - return redirect(url_for('showsavedpastes.showsavedpaste', paste=path)) - else: - r_serv_metadata.sadd('tag:'+path, negative_t) - r_serv_tags.sadd(negative_t, path) - #add new tag in list of all used tags - r_serv_tags.sadd('list_tags', negative_t)''' - - return redirect(url_for('showsavedpastes.showsavedpaste', paste=path)) - -@Tags.route("/Tags/thumbs_down_paste") -def thumbs_down_paste(): - - #TODO verify input - path = request.args.get('paste') - - '''list_tags = r_serv_metadata.smembers('tag:'+path)''' + else: + return 'INCORRECT INPUT3' + else: + return 'INCORRECT INPUT4' return redirect(url_for('showsavedpastes.showsavedpaste', paste=path)) @@ -397,10 +440,6 @@ def edit_taxonomie(): else: return 'INVALID TAXONOMIE' -@Tags.route("/Tags/test") -def test(): - return 'test', - @Tags.route("/Tags/disable_taxonomie") def disable_taxonomie(): @@ -615,6 +654,32 @@ def active_galaxy(): for tag in l_tags: r_serv_tags.sadd('active_tag_galaxies_' + id, 'misp-galaxy:{}="{}"'.format(id, tag)) + #save synonyms + for clusters_json in list_clusters: + + #get clusters + cluster = json.loads(clusters_json) + + if cluster['type'] == id: + + val = cluster['values'] + + tags = [] + for data in val: + try: + meta = data['meta'] + synonyms = meta['synonyms'] + tag_name = data['value'] + tag_name = 'misp-galaxy:{}="{}"'.format(id, tag_name) + #save synonyms + for synonym in synonyms: + r_serv_tags.sadd('synonym_tag_' + tag_name, synonym) + + except KeyError: + pass + + break + return redirect(url_for('Tags.galaxies')) @@ -631,7 +696,9 @@ def disable_galaxy(): r_serv_tags.srem('active_galaxies', id) for tag in l_tags: - r_serv_tags.srem('active_tag_galaxies_' + id, 'misp-galaxy:{}="{}"'.format(id, tag)) + tag_name = 'misp-galaxy:{}="{}"'.format(id, tag) + r_serv_tags.srem('active_tag_galaxies_' + id, tag_name) + r_serv_tags.delete('synonym_tag_' + tag_name) return redirect(url_for('Tags.galaxies')) @@ -666,6 +733,7 @@ def edit_galaxy_tag(): #remove tags for tag in diff: r_serv_tags.srem('active_tag_galaxies_' + id, tag) + r_serv_tags.delete('synonym_tag_' + tag) #all tags unchecked if len(arg1) == 0 and len(arg2) == 0: @@ -676,10 +744,42 @@ def edit_galaxy_tag(): r_serv_tags.sadd('active_galaxies', id) r_serv_tags.sadd('active_tag_galaxies_' + id, tag) + #get tags synonyms + for clusters_json in list_clusters: + + #get clusters + cluster = json.loads(clusters_json) + + if cluster['type'] == id: + + val = cluster['values'] + + tags = [] + for data in val: + try: + meta = data['meta'] + synonyms = meta['synonyms'] + tag_name = data['value'] + tag_name = 'misp-galaxy:{}="{}"'.format(id, tag_name) + if tag_name in arg2: + #save synonyms + for synonym in synonyms: + r_serv_tags.sadd('synonym_tag_' + tag_name, synonym) + + except KeyError: + pass + break + return redirect(url_for('Tags.galaxies')) else: return "INCORRECT INPUT" +@Tags.route("/Tags/test") +def test(): + + return render_template("test.html", + id = '1') + # ========= REGISTRATION ========= app.register_blueprint(Tags) diff --git a/var/www/modules/Tags/templates/Tags.html b/var/www/modules/Tags/templates/Tags.html index be02a0bc..003cc4e2 100644 --- a/var/www/modules/Tags/templates/Tags.html +++ b/var/www/modules/Tags/templates/Tags.html @@ -38,20 +38,31 @@
-
-
- [Taxonomies list] +

+ + +

+ Edit Taxonomies List +
+ + +

+ Edit Galaxies List +
@@ -79,9 +90,12 @@ diff --git a/var/www/modules/Tags/templates/edit_galaxy.html b/var/www/modules/Tags/templates/edit_galaxy.html index d0e8a282..5469327c 100644 --- a/var/www/modules/Tags/templates/edit_galaxy.html +++ b/var/www/modules/Tags/templates/edit_galaxy.html @@ -127,7 +127,7 @@
- @@ -142,13 +142,14 @@ diff --git a/var/www/modules/Tags/templates/edit_taxonomie.html b/var/www/modules/Tags/templates/edit_taxonomie.html index becaef6c..576a7f7c 100644 --- a/var/www/modules/Tags/templates/edit_taxonomie.html +++ b/var/www/modules/Tags/templates/edit_taxonomie.html @@ -127,7 +127,7 @@
- @@ -142,20 +142,14 @@ diff --git a/var/www/modules/Tags/templates/tagged.html b/var/www/modules/Tags/templates/tagged.html index 28e7a28e..99cc365c 100644 --- a/var/www/modules/Tags/templates/tagged.html +++ b/var/www/modules/Tags/templates/tagged.html @@ -74,17 +74,18 @@
-
- + @@ -105,7 +106,7 @@
{% for tag in paste_tags[loop.index0] %} - {{ tag[0] }} + {{ tag[0] }} {% endfor %}
@@ -129,7 +130,19 @@
- [Taxonomies list] +
+

+ + +

+ Edit Taxonomies List +
+ + +

+ Edit Galaxies List +
+
@@ -186,6 +199,10 @@ $(document).ready(function(){ var data = ltags.getValue(); window.location.replace("{{ url_for('Tags.get_tagged_paste') }}?ltags=" + data); } + function emptyTags() { + console.log('b'); + ltags.clear(); + } diff --git a/var/www/modules/browsepastes/Flask_browsepastes.py b/var/www/modules/browsepastes/Flask_browsepastes.py index 474a0d35..d5f098b9 100644 --- a/var/www/modules/browsepastes/Flask_browsepastes.py +++ b/var/www/modules/browsepastes/Flask_browsepastes.py @@ -64,7 +64,6 @@ def event_stream_getImportantPasteByModule(module_name, year): bootstrap_label.append('danger') bootstrap_label.append('warning') bootstrap_label.append('info') - bootstrap_label.append('dark') for path in all_pastes_list: index += 1 @@ -135,7 +134,6 @@ def importantPasteByModule(): bootstrap_label.append('danger') bootstrap_label.append('warning') bootstrap_label.append('info') - bootstrap_label.append('dark') for path in allPastes[0:10]: all_path.append(path) diff --git a/var/www/modules/browsepastes/templates/important_paste_by_module.html b/var/www/modules/browsepastes/templates/important_paste_by_module.html index d35f5174..41923391 100644 --- a/var/www/modules/browsepastes/templates/important_paste_by_module.html +++ b/var/www/modules/browsepastes/templates/important_paste_by_module.html @@ -16,7 +16,7 @@
{% for tag in paste_tags[loop.index0] %} - {{ tag[0] }} + {{ tag[0] }} {% endfor %}
@@ -101,7 +101,7 @@ function add_entries_X(to_add) { for(j=0; j" - + "" + feed.l_tags[j][0] + "" + ""; + + "" + feed.l_tags[j][0] + "" + ""; } search_table.row.add( [ feed.index, diff --git a/var/www/modules/search/Flask_search.py b/var/www/modules/search/Flask_search.py index 9e62f7cf..82040d17 100644 --- a/var/www/modules/search/Flask_search.py +++ b/var/www/modules/search/Flask_search.py @@ -164,7 +164,6 @@ def search(): bootstrap_label.append('danger') bootstrap_label.append('warning') bootstrap_label.append('info') - bootstrap_label.append('dark') index_min = 1 index_max = len(get_index_list()) @@ -205,7 +204,6 @@ def get_more_search_result(): bootstrap_label.append('danger') bootstrap_label.append('warning') bootstrap_label.append('info') - bootstrap_label.append('dark') schema = Schema(title=TEXT(stored=True), path=ID(stored=True), content=TEXT) diff --git a/var/www/modules/search/templates/search.html b/var/www/modules/search/templates/search.html index cc9f2885..bed826dd 100644 --- a/var/www/modules/search/templates/search.html +++ b/var/www/modules/search/templates/search.html @@ -101,7 +101,7 @@
{% for tag in paste_tags[loop.index0] %} - {{ tag[0] }} + {{ tag[0] }} {% endfor %}
@@ -200,7 +200,7 @@ var curr_preview = data.preview_array[i].replace(/\"/g, "\'"); var tag = "" for(j=0; j" + data.list_tags[j] + "" + tag = tag + "" + data.list_tags[j] + "" } search_table.row.add( [ init_num_of_elements_in_table+((offset))+i+1, diff --git a/var/www/modules/showpaste/Flask_showpaste.py b/var/www/modules/showpaste/Flask_showpaste.py index a3efdd4b..a728ce7e 100644 --- a/var/www/modules/showpaste/Flask_showpaste.py +++ b/var/www/modules/showpaste/Flask_showpaste.py @@ -104,13 +104,15 @@ def showpaste(content_range): bootstrap_label.append('danger') bootstrap_label.append('warning') bootstrap_label.append('info') - bootstrap_label.append('dark') #active taxonomies active_taxonomies = r_serv_tags.smembers('active_taxonomies') l_tags = r_serv_metadata.smembers('tag:'+requested_path) + #active galaxies + active_galaxies = r_serv_tags.smembers('active_galaxies') + list_tags = [] for tag in l_tags: @@ -119,7 +121,7 @@ def showpaste(content_range): else: list_tags.append( (tag, False) ) - return render_template("show_saved_paste.html", date=p_date, bootstrap_label=bootstrap_label, active_taxonomies=active_taxonomies, list_tags=list_tags, source=p_source, encoding=p_encoding, language=p_language, size=p_size, mime=p_mime, lineinfo=p_lineinfo, content=p_content, initsize=len(p_content), duplicate_list = p_duplicate_list, simil_list = p_simil_list, hashtype_list = p_hashtype_list, date_list=p_date_list) + return render_template("show_saved_paste.html", date=p_date, bootstrap_label=bootstrap_label, active_taxonomies=active_taxonomies, active_galaxies=active_galaxies, list_tags=list_tags, source=p_source, encoding=p_encoding, language=p_language, size=p_size, mime=p_mime, lineinfo=p_lineinfo, content=p_content, initsize=len(p_content), duplicate_list = p_duplicate_list, simil_list = p_simil_list, hashtype_list = p_hashtype_list, date_list=p_date_list) # ============ ROUTES ============ diff --git a/var/www/modules/showpaste/templates/show_saved_paste.html b/var/www/modules/showpaste/templates/show_saved_paste.html index ee6f0dcb..75d57b96 100644 --- a/var/www/modules/showpaste/templates/show_saved_paste.html +++ b/var/www/modules/showpaste/templates/show_saved_paste.html @@ -49,26 +49,51 @@
- - - - - -
{% if duplicate_list|length == 0 %} @@ -191,6 +210,7 @@ + + + diff --git a/var/www/static/js/tags.js b/var/www/static/js/tags.js index 65d9255e..47b84061 100644 --- a/var/www/static/js/tags.js +++ b/var/www/static/js/tags.js @@ -99,7 +99,7 @@ * Defaults to 'Type or click here' or just 'Click here' if not editable. */ emptyText: function() { - return cfg.editable ? '' : ''; + return cfg.editable ? 'Select Tags' : ''; }, /** @@ -122,7 +122,7 @@ * Defaults to false. */ expandOnFocus: function() { - return cfg.editable ? false : true; + return cfg.editable ? true : true; }, /**