From 89c5321d0564ba065f8ccd211b9f69a7c4e01993 Mon Sep 17 00:00:00 2001 From: Raynald Date: Wed, 15 Nov 2023 15:00:40 +0100 Subject: [PATCH 1/8] Add a check to not load datatables twice --- web/startScan/templates/startScan/detail_scan.html | 5 +++++ web/targetApp/templates/target/summary.html | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/web/startScan/templates/startScan/detail_scan.html b/web/startScan/templates/startScan/detail_scan.html index ffecb9b8..14f93b05 100644 --- a/web/startScan/templates/startScan/detail_scan.html +++ b/web/startScan/templates/startScan/detail_scan.html @@ -2111,6 +2111,11 @@ $(document).ready(function() { {% endif %} $("#pills-subdomain-tab").click(function() { + // prevent table loading twice + // https://datatables.net/manual/tech-notes/3 + if ( $.fn.dataTable.isDataTable( '#subdomain_scan_results' ) ) { + return false; + } var subdomain_ajax_url = '/api/listDatatableSubdomain/?project={{current_project.slug}}&scan_id={{scan_history_id}}&format=datatables'; var is_subd_grouping = false; var subd_grouping_col = 8; diff --git a/web/targetApp/templates/target/summary.html b/web/targetApp/templates/target/summary.html index 052c1b91..7704d177 100644 --- a/web/targetApp/templates/target/summary.html +++ b/web/targetApp/templates/target/summary.html @@ -903,6 +903,11 @@ $(document).ready(function(){ chart.render() $("#pills-subdomain-tab").click(function() { + // prevent table loading twice + // https://datatables.net/manual/tech-notes/3 + if ( $.fn.dataTable.isDataTable( '#subdomain_scan_results' ) ) { + return false; + } var subdomain_ajax_url = '/api/listDatatableSubdomain/?project={{current_project.slug}}&scan_id={{target.id}}&format=datatables'; var is_subd_grouping = false; var subd_grouping_col = 8; From 24574d955e7d28a80585997b5b2a5e15e9f34997 Mon Sep 17 00:00:00 2001 From: Raynald Date: Wed, 15 Nov 2023 15:42:33 +0100 Subject: [PATCH 2/8] Prevent reload on click for vuln DT + add reload btn --- web/startScan/templates/startScan/detail_scan.html | 9 +++++++++ web/startScan/templates/startScan/vulnerabilities.html | 3 +++ web/targetApp/templates/target/summary.html | 9 +++++++-- web/templates/base/_items/vulnerability_tab_content.html | 3 +++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/web/startScan/templates/startScan/detail_scan.html b/web/startScan/templates/startScan/detail_scan.html index 14f93b05..88de5a42 100644 --- a/web/startScan/templates/startScan/detail_scan.html +++ b/web/startScan/templates/startScan/detail_scan.html @@ -1536,6 +1536,11 @@ $(document).ready(function() { // vulnerability datatable const ps2 = new PerfectScrollbar(document.querySelector('.vulnerability-search')); $("#pills-vulnerabilities-tab").click(function() { + // prevent table loading twice + // https://datatables.net/manual/tech-notes/3 + if ( $.fn.dataTable.isDataTable( '#subdomain_scan_results' ) ) { + return false; + } var is_grouping = false; var grouping_col = 3; var vuln_ajax_url = '/api/listVulnerability/?scan_history={{scan_history_id}}&format=datatables'; @@ -1777,6 +1782,10 @@ $(document).ready(function() { }); }); + $('#reload_vulnerabilities_table_btn').click(function () { + vulnerability_table.ajax.reload(); + }); + $('#vulnerability-search-button').click(function () { vulnerability_table.search($('#vulnerability-search').val()).draw() ; }); diff --git a/web/startScan/templates/startScan/vulnerabilities.html b/web/startScan/templates/startScan/vulnerabilities.html index 9c7c4631..65c33922 100644 --- a/web/startScan/templates/startScan/vulnerabilities.html +++ b/web/startScan/templates/startScan/vulnerabilities.html @@ -323,6 +323,9 @@ $(document).ready(function() { } }); }); + $('#reload_vulnerabilities_table_btn').click(function () { + vulnerability_table.ajax.reload(); + }); }); var vulnerability_cols = [ diff --git a/web/targetApp/templates/target/summary.html b/web/targetApp/templates/target/summary.html index 7704d177..ca4afc12 100644 --- a/web/targetApp/templates/target/summary.html +++ b/web/targetApp/templates/target/summary.html @@ -915,7 +915,7 @@ $(document).ready(function(){ "headerCallback": function(e, a, t, n, s) { e.getElementsByTagName("th")[0].innerHTML='
\nc
\n' }, - "destroy": true, + "destroy": false, "processing": true, "oLanguage": subdomain_oLanguage, "fnCreatedRow": function (nRow, aData, iDataIndex) { @@ -1340,11 +1340,16 @@ $(document).ready(function(){ }); $("#pills-vulnerabilities-tab").click(function() { + // prevent table loading twice + // https://datatables.net/manual/tech-notes/3 + if ( $.fn.dataTable.isDataTable( '#subdomain_scan_results' ) ) { + return false; + } var is_grouping = false; var grouping_col = 3; var vuln_ajax_url = '/api/listVulnerability/?target_id={{target.id}}&format=datatables'; var vulnerability_table = $('#vulnerability_results').DataTable({ - "destroy": true, + "destroy": false, "oLanguage": { "oPaginate": { "sPrevious": '', diff --git a/web/templates/base/_items/vulnerability_tab_content.html b/web/templates/base/_items/vulnerability_tab_content.html index 675f1357..4f0d7e16 100644 --- a/web/templates/base/_items/vulnerability_tab_content.html +++ b/web/templates/base/_items/vulnerability_tab_content.html @@ -87,6 +87,9 @@ + + +
From 3ceff80a6bf5464f62bec2d3d798e734fcb54518 Mon Sep 17 00:00:00 2001 From: Raynald Date: Wed, 15 Nov 2023 15:50:43 +0100 Subject: [PATCH 3/8] Replace bad id --- web/startScan/templates/startScan/detail_scan.html | 2 +- web/targetApp/templates/target/summary.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web/startScan/templates/startScan/detail_scan.html b/web/startScan/templates/startScan/detail_scan.html index 88de5a42..e48c2380 100644 --- a/web/startScan/templates/startScan/detail_scan.html +++ b/web/startScan/templates/startScan/detail_scan.html @@ -1538,7 +1538,7 @@ $(document).ready(function() { $("#pills-vulnerabilities-tab").click(function() { // prevent table loading twice // https://datatables.net/manual/tech-notes/3 - if ( $.fn.dataTable.isDataTable( '#subdomain_scan_results' ) ) { + if ( $.fn.dataTable.isDataTable( '#vulnerability_results' ) ) { return false; } var is_grouping = false; diff --git a/web/targetApp/templates/target/summary.html b/web/targetApp/templates/target/summary.html index ca4afc12..1c3f0c8c 100644 --- a/web/targetApp/templates/target/summary.html +++ b/web/targetApp/templates/target/summary.html @@ -1342,7 +1342,7 @@ $(document).ready(function(){ $("#pills-vulnerabilities-tab").click(function() { // prevent table loading twice // https://datatables.net/manual/tech-notes/3 - if ( $.fn.dataTable.isDataTable( '#subdomain_scan_results' ) ) { + if ( $.fn.dataTable.isDataTable( '#vulnerability_results' ) ) { return false; } var is_grouping = false; From ee7f8538f2f11170c3b5163ea0a841514421c8f1 Mon Sep 17 00:00:00 2001 From: Raynald Date: Wed, 15 Nov 2023 16:07:12 +0100 Subject: [PATCH 4/8] Move reload button --- .../base/_items/vulnerability_tab_content.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/web/templates/base/_items/vulnerability_tab_content.html b/web/templates/base/_items/vulnerability_tab_content.html index 4f0d7e16..8c309842 100644 --- a/web/templates/base/_items/vulnerability_tab_content.html +++ b/web/templates/base/_items/vulnerability_tab_content.html @@ -25,7 +25,7 @@ -
-
From fe9c64f11b0cf08dd630f5e78dcbef762e20decb Mon Sep 17 00:00:00 2001 From: Raynald Date: Wed, 15 Nov 2023 16:13:40 +0100 Subject: [PATCH 5/8] Add missing reload js listener on target page --- web/targetApp/templates/target/summary.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/web/targetApp/templates/target/summary.html b/web/targetApp/templates/target/summary.html index 1c3f0c8c..48a3ed7c 100644 --- a/web/targetApp/templates/target/summary.html +++ b/web/targetApp/templates/target/summary.html @@ -1568,6 +1568,9 @@ $(document).ready(function(){ } }); }); + $('#reload_vulnerabilities_table_btn').click(function() { + vulnerability_table.ajax.reload(); + }); // column visibility vulnerability_datatable_col_visibility(vulnerability_table); }, From ed3661cc0e4360b546215997e2f73ca21b2ca397 Mon Sep 17 00:00:00 2001 From: Raynald Date: Wed, 15 Nov 2023 16:33:25 +0100 Subject: [PATCH 6/8] Don't load screenshots if table is not empty --- web/startScan/static/startScan/js/detail_scan.js | 3 +++ web/startScan/templates/startScan/detail_scan.html | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/web/startScan/static/startScan/js/detail_scan.js b/web/startScan/static/startScan/js/detail_scan.js index b2241da9..b88a1f46 100644 --- a/web/startScan/static/startScan/js/detail_scan.js +++ b/web/startScan/static/startScan/js/detail_scan.js @@ -483,6 +483,9 @@ function get_osint_users(scan_id){ } function get_screenshot(scan_id){ + if($('#screenshots-table').children().length > 0) { + return false; + } var port_array = []; var service_array = []; var tech_array = []; diff --git a/web/startScan/templates/startScan/detail_scan.html b/web/startScan/templates/startScan/detail_scan.html index e48c2380..82c07d6f 100644 --- a/web/startScan/templates/startScan/detail_scan.html +++ b/web/startScan/templates/startScan/detail_scan.html @@ -1034,7 +1034,7 @@ Scan Findings
-
+
@@ -2020,6 +2020,10 @@ $(document).ready(function() { {% if 'screenshot' in history.tasks %} $("#pills-screenshot-tab").click(function() { + // prevent table loading twice because it loads image twice and fails search + if ( $.fn.dataTable.isDataTable( '#vulnerability_results' ) ) { + return false; + } get_screenshot({{scan_history_id}}); //animate search placeholder From 0c1924fbd75e891e14ac1c54b6e26f3df500f1fc Mon Sep 17 00:00:00 2001 From: Raynald Date: Wed, 15 Nov 2023 16:57:49 +0100 Subject: [PATCH 7/8] Move screenshot condition to correct location --- web/startScan/static/startScan/js/detail_scan.js | 3 --- web/startScan/templates/startScan/detail_scan.html | 3 +-- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/web/startScan/static/startScan/js/detail_scan.js b/web/startScan/static/startScan/js/detail_scan.js index b88a1f46..b2241da9 100644 --- a/web/startScan/static/startScan/js/detail_scan.js +++ b/web/startScan/static/startScan/js/detail_scan.js @@ -483,9 +483,6 @@ function get_osint_users(scan_id){ } function get_screenshot(scan_id){ - if($('#screenshots-table').children().length > 0) { - return false; - } var port_array = []; var service_array = []; var tech_array = []; diff --git a/web/startScan/templates/startScan/detail_scan.html b/web/startScan/templates/startScan/detail_scan.html index 82c07d6f..afb7bbd5 100644 --- a/web/startScan/templates/startScan/detail_scan.html +++ b/web/startScan/templates/startScan/detail_scan.html @@ -2020,8 +2020,7 @@ $(document).ready(function() { {% if 'screenshot' in history.tasks %} $("#pills-screenshot-tab").click(function() { - // prevent table loading twice because it loads image twice and fails search - if ( $.fn.dataTable.isDataTable( '#vulnerability_results' ) ) { + if($('#screenshots-table').children().length > 0) { return false; } get_screenshot({{scan_history_id}}); From 66f2dba118181382e3492236423b250ffa9e7c69 Mon Sep 17 00:00:00 2001 From: Raynald Date: Fri, 17 Nov 2023 23:47:07 +0100 Subject: [PATCH 8/8] Prevent reload from visualization (which dup the graph) --- web/startScan/templates/startScan/detail_scan.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/web/startScan/templates/startScan/detail_scan.html b/web/startScan/templates/startScan/detail_scan.html index afb7bbd5..2e3dc647 100644 --- a/web/startScan/templates/startScan/detail_scan.html +++ b/web/startScan/templates/startScan/detail_scan.html @@ -2107,6 +2107,9 @@ $(document).ready(function() { }); $("#pills-visualisation-tab").click(function() { + if($('#visualisation').children().length > 0) { + return false; + } visualise_scan_results({{scan_history_id}}); });