d3 tree until ip done

This commit is contained in:
Yogesh Ojha
2021-07-01 01:34:01 +05:30
parent 6d5011239c
commit e705caf28b
6 changed files with 78 additions and 34 deletions
+49 -22
View File
@@ -1,56 +1,83 @@
from rest_framework import serializers
from startScan.models import *
from reNgine.common_func import *
class MitchSubdomainSerializer(serializers.ModelSerializer):
class VisualisePortSerializer(serializers.ModelSerializer):
title = serializers.ReadOnlyField(default='Subdomain')
name = serializers.SerializerMethodField('get_name')
description = serializers.SerializerMethodField('get_description')
class Meta:
model = Port
fields = [
'name'
]
def get_name(self, port):
return str(port.number) + "/" + port.service_name
class VisualiseIpSerializer(serializers.ModelSerializer):
name = serializers.SerializerMethodField('get_name')
children = serializers.SerializerMethodField('get_children')
class Meta:
model = IpAddress
fields = [
'name',
'children'
]
def get_name(self, Ip):
return Ip.address
def get_children(self, ip):
port = Port.objects.filter(ports__in=IpAddress.objects.filter(address=ip))
serializer = VisualisePortSerializer(port, many=True)
return serializer.data
class VisualiseSubdomainSerializer(serializers.ModelSerializer):
children = serializers.SerializerMethodField('get_children')
class Meta:
model = Subdomain
fields = [
'id',
'title',
'description'
'name',
'children',
'http_url'
]
def get_description(self, Subdomain):
return Subdomain.name
def get_children(self, subdomain):
subdomain = Subdomain.objects.filter(
scan_history=self.context.get('scan_history')).filter(name=subdomain)
ips = IpAddress.objects.filter(ip_addresses__in=subdomain)
serializer = VisualiseIpSerializer(ips, many=True)
return serializer.data
class MitchDataSerializer(serializers.ModelSerializer):
class VisualiseDataSerializer(serializers.ModelSerializer):
title = serializers.ReadOnlyField(default='Target')
type = serializers.ReadOnlyField(default='Root')
description = serializers.SerializerMethodField('get_description')
name = serializers.SerializerMethodField('get_name')
children = serializers.SerializerMethodField('get_children')
class Meta:
model = ScanHistory
fields = [
'id',
'title',
'type',
'description',
'name',
'children',
]
def get_description(self, ScanHistory):
def get_name(self, ScanHistory):
return ScanHistory.domain.name
def get_children(self, ScanHistory):
subdomain = Subdomain.objects.filter(scan_history=ScanHistory)
serializer = MitchSubdomainSerializer(subdomain, many=True)
print(serializer)
serializer = VisualiseSubdomainSerializer(subdomain, many=True, context={'scan_history': ScanHistory})
return serializer.data
class SubdomainChangesSerializer(serializers.ModelSerializer):
change = serializers.SerializerMethodField('get_change')
+1 -1
View File
@@ -36,7 +36,7 @@ urlpatterns = [
path('queryEmployees/', ListEmployees.as_view(), name='queryEmployees'),
path('queryDorks/', ListDorks.as_view(), name='queryDorks'),
path('queryDorkTypes/', ListDorkTypes.as_view(), name='queryDorkTypes'),
path('queryAllScanResultMitch/', MitchData.as_view(), name='queryAllScanResultMitch'),
path('queryAllScanResultVisualise/', VisualiseData.as_view(), name='queryAllScanResultVisualise'),
]
urlpatterns += router.urls
+2 -2
View File
@@ -16,13 +16,13 @@ from rest_framework import status
from rest_framework.decorators import api_view, action
class MitchData(APIView):
class VisualiseData(APIView):
def get(self, request, format=None):
req = self.request
scan_id = req.query_params.get('scan_id')
if scan_id:
mitch_data = ScanHistory.objects.filter(id=scan_id)
serializer = MitchDataSerializer(mitch_data, many=True)
serializer = VisualiseDataSerializer(mitch_data, many=True)
return Response(serializer.data)
else:
return Response()