mirror of
https://github.com/yogeshojha/rengine.git
synced 2026-09-27 04:04:52 +02:00
d3 tree until ip done
This commit is contained in:
@@ -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')
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user