Fixed modals

This commit is contained in:
Yogesh Ojha
2021-06-11 22:37:39 +05:30
parent 3db3bb059c
commit e477d121ff
5 changed files with 43 additions and 28 deletions
@@ -674,7 +674,7 @@ $("#pills-subdomain-tab").click(function() {
tech_badge = '';
interesting_badge = '';
if (row['technologies']){
tech_badge = `</br>` + parse_technology(row['technologies'], "info", outline=true);
tech_badge = `</br>` + parse_technology(row['technologies'], "info", outline=true, scan_id={{scan_history_id}});
}
if(row['is_interesting'])
{
@@ -753,10 +753,10 @@ $("#pills-subdomain-tab").click(function() {
{
Object.entries(data).forEach(([key, value]) => {
if (value['is_cdn']) {
ip_badge += `<span class='m-1 badge badge-pills outline-badge-warning' title="CDN IP Address">${value.address}</span>`
ip_badge += `<span class='m-1 badge badge-pills outline-badge-warning badge-link' title="CDN IP Address" onclick="get_ip_details('${value.address}', {{scan_history_id}})">${value.address}</span>`
}
else{
ip_badge += `<span class='m-1 badge badge-pills outline-badge-info'>${value.address}</span>`
ip_badge += `<span class='m-1 badge badge-pills outline-badge-info badge-link' onclick="get_ip_details('${value.address}', {{scan_history_id}})">${value.address}</span>`
}
});
return ip_badge;
@@ -776,7 +776,7 @@ $("#pills-subdomain-tab").click(function() {
port_obj = data[ip]['ports'][port]
badge_color = port_obj['is_uncommon'] ? 'danger' : 'info';
title = port_obj['is_uncommon'] ? 'Uncommon Port - ' + port_obj['description'] : port_obj['description'];
port_badge += `<span class='m-1 badge badge-pills outline-badge-${badge_color} bs-tooltip' title='${title}'>${port_obj['number']}/${port_obj['service_name']}</span>`
port_badge += `<span class='m-1 badge badge-pills outline-badge-${badge_color} bs-tooltip badge-link' title='${title}' onclick="get_port_details(${port_obj['number']}, {{scan_history_id}})">${port_obj['number']}/${port_obj['service_name']}</span>`
}
}
return port_badge;
+4
View File
@@ -332,3 +332,7 @@ div.dataTables_wrapper div.dataTables_filter {
.anychart-credits-text{
display: none;
}
.badge-link{
cursor: pointer;
}
+31 -20
View File
@@ -240,18 +240,23 @@ function parse_comma_values_into_span(data, color, outline=null)
return data_with_span;
}
function parse_technology(data, color, outline=null)
function parse_technology(data, color, outline=null, scan_id=null)
{
if(outline)
{
var badge = `<span class='badge badge-pill outline-badge-`+color+` m-1'>`;
var badge = `<span class='badge-link badge badge-pill outline-badge-`+color+` m-1'`;
}
else {
var badge = `<span class='badge badge-pill badge-`+color+` m-1'>`;
var badge = `<span class='badge-link badge badge-pill badge-`+color+` m-1'`;
}
var data_with_span ="";
for (var key in data){
data_with_span += badge + data[key]['name'] + "</span>";
if (scan_id){
data_with_span += badge + ` onclick="get_tech_details('${data[key]['name']}', ${scan_id})">` + data[key]['name'] + "</span>";
}
else{
data_with_span += badge + ">" + data[key]['name'] + "</span>";
}
}
return data_with_span;
}
@@ -404,7 +409,7 @@ function get_interesting_subdomains(scan_history_id){
{'data': 'http_status'},
{'data': 'content_length'},
{'data': 'http_url'},
{'data': 'technology_stack'},
{'data': 'technologies'},
],
"columnDefs": [
{
@@ -421,8 +426,8 @@ function get_interesting_subdomains(scan_history_id){
{
"render": function ( data, type, row ) {
tech_badge = '';
if (row['technology_stack']){
tech_badge = `</br>` + parse_comma_values_into_span(row['technology_stack'], "info", outline=true);
if (row['technologies']){
tech_badge = `</br>` + parse_technology(row['technologies'], "info", outline=true, scan_id=null);
}
if (row['http_url']) {
return `<a href="`+row['http_url']+`" class="text-info" target="_blank">`+data+`</a>` + tech_badge;
@@ -764,7 +769,7 @@ function get_ips(scan_id){
function get_ip_details(ip_address, scan_id){
// render tab modal
$('#tab-modal-title').html('Details for IP: ' + ip_address);
$('#tab-modal-title').html('Details for IP: <b>' + ip_address + '</b>');
// add tab modal title
$('#modal-tabs').empty();
$('#modal-tabs').append(`<li class="nav-item"><a class="nav-link active" id="open-ports-tab" data-toggle="tab" href="#modal-open-ports" role="tab" aria-controls="home" aria-selected="true"><span id="modal-open-ports-count"></span>Open Ports</a></li>`);
@@ -798,19 +803,21 @@ function get_ip_details(ip_address, scan_id){
$('#modal-subdomain-count').html(`<b>${data['subdomains'].length}</b>&nbsp;&nbsp;`);
for (subdomain in data['subdomains']){
subdomain_obj = data['subdomains'][subdomain];
badge_color = subdomain_obj['http_status'] == 404 ? 'danger' : '';
if (subdomain_obj['http_url']) {
$("#modal-subdomain-text").append(`<li><a href='${subdomain_obj['http_url']}' target="_blank">${subdomain_obj['name']}</a></li>`)
$("#modal-subdomain-text").append(`<li><a href='${subdomain_obj['http_url']}' target="_blank" class="text-${badge_color}">${subdomain_obj['name']}</a></li>`)
}
else {
$("#modal-subdomain-text").append(`<li>${subdomain_obj['name']}</li>`)
$("#modal-subdomain-text").append(`<li class="text-${badge_color}">${subdomain_obj['name']}</li>`)
}
}
$('#modal-text-subdomain').append(`<span class="float-right text-danger">*Subdomains highlighted are 404 HTTP Status</span>`);
});
}
function get_port_details(port, scan_id){
// render tab modal
$('#tab-modal-title').html('Details for Port: ' + port);
$('#tab-modal-title').html('Details for Port: <b>' + port + '</b>');
// add tab modal title
$('#modal-tabs').empty();
$('#modal-tabs').append(`<li class="nav-item"><a class="nav-link active" id="ip-tab" data-toggle="tab" href="#modal-ip" role="tab" aria-controls="home" aria-selected="true"><span id="modal-ip-count"></span>IP Address</a></li>`);
@@ -832,9 +839,10 @@ function get_port_details(port, scan_id){
$('#modal-ip-count').html(`<b>${data['ips'].length}</b>&nbsp;&nbsp;`);
for (ip in data['ips']){
ip_obj = data['ips'][ip];
text_color = ip_obj['cdn'] ? 'warning' : '';
text_color = ip_obj['is_cdn'] ? 'warning' : '';
$("#modal-ip-text").append(`<li class='text-${text_color}'>${ip_obj['address']}</li>`)
}
$('#modal-text-ip').append(`<span class="float-right text-warning">*IP Address highlighted are CDN IP Address</span>`);
});
// query subdomains
@@ -844,35 +852,38 @@ function get_port_details(port, scan_id){
$('#modal-subdomain-count').html(`<b>${data['subdomains'].length}</b>&nbsp;&nbsp;`);
for (subdomain in data['subdomains']){
subdomain_obj = data['subdomains'][subdomain];
badge_color = subdomain_obj['http_status'] == 404 ? 'danger' : '';
if (subdomain_obj['http_url']) {
$("#modal-subdomain-text").append(`<li><a href='${subdomain_obj['http_url']}' target="_blank">${subdomain_obj['name']}</a></li>`)
$("#modal-subdomain-text").append(`<li><a href='${subdomain_obj['http_url']}' target="_blank" class="text-${badge_color}">${subdomain_obj['name']}</a></li>`)
}
else {
$("#modal-subdomain-text").append(`<li>${subdomain_obj['name']}</li>`)
$("#modal-subdomain-text").append(`<li class="text-${badge_color}">${subdomain_obj['name']}</li>`);
}
}
$('#modal-text-subdomain').append(`<span class="float-right text-danger">*Subdomains highlighted are 404 HTTP Status</span>`);
});
}
function get_tech_details(tech, scan_id){
// render tab modal
$('.modal-title').html('Details for Technology: ' + tech);
$('.modal-title').html('Details for Technology: <b>' + tech + '</b>');
$('#exampleModal').modal('show');
$('.modal-text').empty();
// query subdomains
$.getJSON(`../api/querySubdomains/?scan_id=${scan_id}&tech=${tech}&format=json`, function(data) {
$('.modal-text').append(`${data['subdomains'].length} Subdomains using ${tech}`);
$('.modal-text').append(`<ul id="subdomain-ul"></ul>`);
$('#modal-text-content').append(`${data['subdomains'].length} Subdomains using ${tech}`);
$('#modal-text-content').append(`<ul id="subdomain-modal-ul"></ul>`);
for (subdomain in data['subdomains']){
subdomain_obj = data['subdomains'][subdomain];
badge_color = subdomain_obj['http_status'] == 404 ? 'danger' : '';
if (subdomain_obj['http_url']) {
$("#subdomain-ul").append(`<li><a href='${subdomain_obj['http_url']}' target="_blank">${subdomain_obj['name']}</a></li>`)
$("#subdomain-modal-ul").append(`<li><a href='${subdomain_obj['http_url']}' target="_blank" class="text-${badge_color}">${subdomain_obj['name']}</a></li>`);
}
else {
$("#subdomain-ul").append(`<li>${subdomain_obj['name']}</li>`)
$("#subdomain-modal-ul").append(`<li class="text-${badge_color}">${subdomain_obj['name']}</li>`);
}
}
$('#modal-text-content').append(`<span class="float-right text-danger">*Subdomains highlighted are 404 HTTP Status</span>`);
});
}
+3 -3
View File
@@ -1,14 +1,14 @@
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel"></h5>
<h6 class="modal-title" id="exampleModalLabel"></h6>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-x"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
</button>
</div>
<div class="modal-body">
<div class="modal-text"></div>
<div class="modal-text" id="modal-text-content"></div>
</div>
<div class="modal-footer">
</div>
+1 -1
View File
@@ -2,7 +2,7 @@
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="tab-modal-title"></h5>
<h6 class="modal-title" id="tab-modal-title"></h6>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>