Technology to subdomain lookup done 🚀

This commit is contained in:
Yogesh Ojha
2021-06-10 13:28:15 +05:30
parent a44068ed57
commit 3db3bb059c
4 changed files with 37 additions and 10 deletions
+7
View File
@@ -71,12 +71,19 @@ class ListSubdomains(APIView):
scan_id = req.query_params.get('scan_id')
ip_address = req.query_params.get('ip_address')
port = req.query_params.get('port')
tech = req.query_params.get('tech')
if scan_id and ip_address:
subdomain = Subdomain.objects.filter(
ip_addresses__address=ip_address).filter(
scan_history__id=scan_id)
serializer = SubdomainSerializer(subdomain, many=True)
return Response({"subdomains": serializer.data})
elif scan_id and tech:
subdomain = Subdomain.objects.filter(
technologies__name=tech).filter(
scan_history__id=scan_id)
serializer = SubdomainSerializer(subdomain, many=True)
return Response({"subdomains": serializer.data})
elif scan_id and port:
subdomain = Subdomain.objects.filter(
ip_addresses__in=IpAddress.objects.filter(
@@ -165,7 +165,7 @@ Detailed Scan Results for {{history.domain.name}}
<div class="tab-content" id="pills-tabContent">
<div class="tab-pane fade show active" id="pills-summary" role="tabpanel" aria-labelledby="pills-summary-tab">
<div class="row">
<div class="col-xl-4 col-lg-6 col-md-12 col-sm-12 col-12 layout-spacing">
<div class="col-xl-4 col-lg-4 col-md-12 col-sm-12 col-12 layout-spacing">
<div class="widget widget-five widget-progress">
<div class="widget-heading">
<a href="javascript:void(0)" class="task-info">
@@ -244,7 +244,7 @@ Detailed Scan Results for {{history.domain.name}}
</div>
</div>
</div>
<div class="col-xl-4 col-lg-3 col-md-12 col-sm-12 col-12 layout-spacing">
<div class="col-xl-4 col-lg-4 col-md-12 col-sm-12 col-12 layout-spacing">
<div class="widget widget-ip">
<div class="widget-heading">
<h6 class=""><span id="ip-address-count"><span class="spinner-border text-dark align-self-center loader-sm"></span></span> IP Addresses <small id="ip-address-summary"></small></h6>
@@ -258,7 +258,7 @@ Detailed Scan Results for {{history.domain.name}}
</div>
</div>
</div>
<div class="col-xl-4 col-lg-3 col-md-12 col-sm-12 col-12 layout-spacing">
<div class="col-xl-4 col-lg-4 col-md-12 col-sm-12 col-12 layout-spacing">
<div class="widget widget-ip">
<div class="widget-heading">
<h6 class=""><span id="ports-count"><span class="spinner-border text-dark align-self-center loader-sm"></span></span> Discovered Ports </h6>
@@ -272,7 +272,7 @@ Detailed Scan Results for {{history.domain.name}}
</div>
</div>
</div>
<div class="col-xl-4 col-lg-3 col-md-12 col-sm-12 col-12 layout-spacing">
<div class="col-xl-5 col-lg-5 col-md-12 col-sm-12 col-12 layout-spacing">
<div class="widget widget-ip">
<div class="widget-heading">
<h6 class=""><span id="technologies-count"><span class="spinner-border text-dark align-self-center loader-sm"></span></span> Discovered Technologies </h6>
+25 -5
View File
@@ -782,7 +782,7 @@ function get_ip_details(ip_address, scan_id){
$('#tabsModal').modal('show');
$.getJSON(`../api/queryPorts/?scan_id=${scan_id}&ip_address=${ip_address}&format=json`, function(data) {
$('#modal-open-port-text').empty();
$('#modal-open-port-text').append(`<p> IP Addresses ${ip_address} has ${data['ports'].length} Open Port`);
$('#modal-open-port-text').append(`<p> IP Addresses ${ip_address} has ${data['ports'].length} Open Ports`);
$('#modal-open-ports-count').html(`<b>${data['ports'].length}</b>&nbsp;&nbsp;`);
for (port in data['ports']){
port_obj = data['ports'][port];
@@ -794,7 +794,7 @@ function get_ip_details(ip_address, scan_id){
// query subdomains
$.getJSON(`../api/querySubdomains/?scan_id=${scan_id}&ip_address=${ip_address}&format=json`, function(data) {
$('#modal-subdomain-text').empty();
$('#modal-subdomain-text').append(`<p>${data['subdomains'].length} subdomain are associated with IP Address: ${ip_address}</p>`);
$('#modal-subdomain-text').append(`<p>${data['subdomains'].length} subdomain associated with IP Address: ${ip_address}</p>`);
$('#modal-subdomain-count').html(`<b>${data['subdomains'].length}</b>&nbsp;&nbsp;`);
for (subdomain in data['subdomains']){
subdomain_obj = data['subdomains'][subdomain];
@@ -828,7 +828,7 @@ function get_port_details(port, scan_id){
$('#tabsModal').modal('show');
$.getJSON(`../api/queryIps/?scan_id=${scan_id}&port=${port}&format=json`, function(data) {
$('#modal-ip-text').empty();
$('#modal-ip-text').append(`<p>${data['ips'].length} IP Addresses have Port ${port} Open`);
$('#modal-ip-text').append(`<p>${data['ips'].length} IP Addresses has Port ${port} Open`);
$('#modal-ip-count').html(`<b>${data['ips'].length}</b>&nbsp;&nbsp;`);
for (ip in data['ips']){
ip_obj = data['ips'][ip];
@@ -839,7 +839,6 @@ function get_port_details(port, scan_id){
// query subdomains
$.getJSON(`../api/querySubdomains/?scan_id=${scan_id}&port=${port}&format=json`, function(data) {
$('#subdomain-spinner').empty();
$('#modal-subdomain-text').empty();
$('#modal-subdomain-text').append(`<p>${data['subdomains'].length} Subdomain has Port ${port} Open`);
$('#modal-subdomain-count').html(`<b>${data['subdomains'].length}</b>&nbsp;&nbsp;`);
@@ -856,12 +855,33 @@ function get_port_details(port, scan_id){
});
}
function get_tech_details(tech, scan_id){
// render tab modal
$('.modal-title').html('Details for Technology: ' + tech);
$('#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>`);
for (subdomain in data['subdomains']){
subdomain_obj = data['subdomains'][subdomain];
if (subdomain_obj['http_url']) {
$("#subdomain-ul").append(`<li><a href='${subdomain_obj['http_url']}' target="_blank">${subdomain_obj['name']}</a></li>`)
}
else {
$("#subdomain-ul").append(`<li>${subdomain_obj['name']}</li>`)
}
}
});
}
function get_technologies(scan_id){
$.getJSON(`../api/queryTechnologies/?scan_id=${scan_id}&format=json`, function(data) {
$('#technologies-count').empty();
for (var val in data['technologies']){
tech = data['technologies'][val]
$("#technologies").append(`<span class='badge outline-badge-info badge-pills m-1' data-toggle="tooltip" title="${tech['count']} Subdomains use this technology.">${tech['name']}</span>`);
$("#technologies").append(`<span class='badge outline-badge-info badge-pills m-1' data-toggle="tooltip" title="${tech['count']} Subdomains use this technology." onclick="get_tech_details('${tech['name']}', ${scan_id})">${tech['name']}</span>`);
}
$('#technologies-count').html(`<span class="badge outline-badge-dark">${data['technologies'].length}</span>`);
$("body").tooltip({ selector: '[data-toggle=tooltip]' });
+1 -1
View File
@@ -8,7 +8,7 @@
</button>
</div>
<div class="modal-body">
<p class="modal-text"></p>
<div class="modal-text"></div>
</div>
<div class="modal-footer">
</div>