mirror of
https://github.com/yogeshojha/rengine.git
synced 2026-09-27 12:14:53 +02:00
Technology to subdomain lookup done 🚀
This commit is contained in:
@@ -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
@@ -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> `);
|
||||
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> `);
|
||||
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> `);
|
||||
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> `);
|
||||
@@ -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]' });
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user