diff --git a/scanEngine/forms.py b/scanEngine/forms.py new file mode 100644 index 00000000..da61fdd4 --- /dev/null +++ b/scanEngine/forms.py @@ -0,0 +1,31 @@ +from django import forms +from scanEngine.models import EngineType + +class AddEngineForm(forms.ModelForm): + class Meta: + model = EngineType + fields = '__all__' + scan_type_name = forms.CharField( + required=True, + widget=forms.TextInput( + attrs={ + "class": "form-control", + "id": "scan_engine_name", + "placeholder":"Custom Engine" + } + )) + subdomain_discovery = forms.BooleanField( + required=True, + widget=forms.CheckboxInput(attrs={"checked":"", "disabled":""})) + dir_file_search = forms.BooleanField( + required=False, + widget=forms.CheckboxInput(attrs={})) + subdomain_takeover = forms.BooleanField( + required=False, + widget=forms.CheckboxInput(attrs={})) + param_discovery = forms.BooleanField( + required=False, + widget=forms.CheckboxInput(attrs={})) + port_scan = forms.BooleanField( + required=False, + widget=forms.CheckboxInput(attrs={"checked":""})) diff --git a/scanEngine/migrations/0002_auto_20200513_1213.py b/scanEngine/migrations/0002_auto_20200513_1213.py new file mode 100644 index 00000000..41c8fb73 --- /dev/null +++ b/scanEngine/migrations/0002_auto_20200513_1213.py @@ -0,0 +1,33 @@ +# Generated by Django 3.0.6 on 2020-05-13 12:13 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('scanEngine', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='enginetype', + name='dir_file_search', + field=models.BooleanField(blank=True, default=False), + ), + migrations.AlterField( + model_name='enginetype', + name='param_discovery', + field=models.BooleanField(blank=True, default=False), + ), + migrations.AlterField( + model_name='enginetype', + name='port_scan', + field=models.BooleanField(blank=True, default=False), + ), + migrations.AlterField( + model_name='enginetype', + name='subdomain_takeover', + field=models.BooleanField(blank=True, default=False), + ), + ] diff --git a/scanEngine/migrations/0003_auto_20200513_1229.py b/scanEngine/migrations/0003_auto_20200513_1229.py new file mode 100644 index 00000000..fab9afd8 --- /dev/null +++ b/scanEngine/migrations/0003_auto_20200513_1229.py @@ -0,0 +1,38 @@ +# Generated by Django 3.0.6 on 2020-05-13 12:29 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('scanEngine', '0002_auto_20200513_1213'), + ] + + operations = [ + migrations.AlterField( + model_name='enginetype', + name='dir_file_search', + field=models.BooleanField(), + ), + migrations.AlterField( + model_name='enginetype', + name='param_discovery', + field=models.BooleanField(), + ), + migrations.AlterField( + model_name='enginetype', + name='port_scan', + field=models.BooleanField(), + ), + migrations.AlterField( + model_name='enginetype', + name='subdomain_discovery', + field=models.BooleanField(), + ), + migrations.AlterField( + model_name='enginetype', + name='subdomain_takeover', + field=models.BooleanField(), + ), + ] diff --git a/scanEngine/migrations/0004_auto_20200513_1234.py b/scanEngine/migrations/0004_auto_20200513_1234.py new file mode 100644 index 00000000..60ba8039 --- /dev/null +++ b/scanEngine/migrations/0004_auto_20200513_1234.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.6 on 2020-05-13 12:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('scanEngine', '0003_auto_20200513_1229'), + ] + + operations = [ + migrations.AlterField( + model_name='enginetype', + name='port_scan', + field=models.BooleanField(default=True), + ), + ] diff --git a/scanEngine/migrations/0005_auto_20200513_1235.py b/scanEngine/migrations/0005_auto_20200513_1235.py new file mode 100644 index 00000000..036cdbf0 --- /dev/null +++ b/scanEngine/migrations/0005_auto_20200513_1235.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.6 on 2020-05-13 12:35 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('scanEngine', '0004_auto_20200513_1234'), + ] + + operations = [ + migrations.AlterField( + model_name='enginetype', + name='param_discovery', + field=models.BooleanField(default=True), + ), + ] diff --git a/scanEngine/migrations/0006_auto_20200513_1235.py b/scanEngine/migrations/0006_auto_20200513_1235.py new file mode 100644 index 00000000..f186eea9 --- /dev/null +++ b/scanEngine/migrations/0006_auto_20200513_1235.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.6 on 2020-05-13 12:35 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('scanEngine', '0005_auto_20200513_1235'), + ] + + operations = [ + migrations.AlterField( + model_name='enginetype', + name='param_discovery', + field=models.BooleanField(), + ), + migrations.AlterField( + model_name='enginetype', + name='port_scan', + field=models.BooleanField(), + ), + ] diff --git a/scanEngine/migrations/0007_auto_20200513_1239.py b/scanEngine/migrations/0007_auto_20200513_1239.py new file mode 100644 index 00000000..c882861f --- /dev/null +++ b/scanEngine/migrations/0007_auto_20200513_1239.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.6 on 2020-05-13 12:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('scanEngine', '0006_auto_20200513_1235'), + ] + + operations = [ + migrations.AlterField( + model_name='enginetype', + name='subdomain_discovery', + field=models.BooleanField(default=True), + ), + ] diff --git a/scanEngine/models.py b/scanEngine/models.py index d05ce9b5..4e33e8f1 100644 --- a/scanEngine/models.py +++ b/scanEngine/models.py @@ -8,11 +8,11 @@ SCAN_TYPES = ('subdomain_discovery', class EngineType(models.Model): scan_type_name = models.CharField(max_length=200) - subdomain_discovery = models.BooleanField(default=False) - dir_file_search = models.BooleanField(default=False) - subdomain_takeover = models.BooleanField(default=False) - param_discovery = models.BooleanField(default=False) - port_scan = models.BooleanField(default=False) + subdomain_discovery = models.BooleanField(default=True) + dir_file_search = models.BooleanField() + subdomain_takeover = models.BooleanField() + param_discovery = models.BooleanField() + port_scan = models.BooleanField() def __str__(self): return self.scan_type_name diff --git a/scanEngine/templates/scanEngine/_items/add_engine_form.html b/scanEngine/templates/scanEngine/_items/add_engine_form.html new file mode 100644 index 00000000..22d972c8 --- /dev/null +++ b/scanEngine/templates/scanEngine/_items/add_engine_form.html @@ -0,0 +1,86 @@ +
+
+
+
+
+

Add Scan Engine Name

+ {{ form.errors }} + {{ form.non_field_errors }} +
+
+
+
+
+ {% csrf_token %} +
+
+ + {{ form.scan_type_name }} +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
Subdomain Discovery
+ (Selected by Default) +
+ + +
+
Subdomain Takeover
+
+ +
+
Directory and Files Search
+
+ +
+
Parameter Discovery
+
+ +
+
Port Scan
+
+ +
+
+ +
+
+
+
diff --git a/scanEngine/templates/scanEngine/add_engine.html b/scanEngine/templates/scanEngine/add_engine.html new file mode 100644 index 00000000..8db96114 --- /dev/null +++ b/scanEngine/templates/scanEngine/add_engine.html @@ -0,0 +1,23 @@ +{% extends 'base/base.html' %} +{% load static %} + +{% block title %} +Add Engine Type +{% endblock title %} + + +{% block custom_js_css_link %} + + +{% endblock custom_js_css_link %} + +{% block main_content %} + {% include 'scanEngine/_items/add_engine_form.html'%} +{% endblock main_content %} + + +{% block page_level_script %} + + + +{% endblock page_level_script %} diff --git a/scanEngine/templates/scanEngine/index.html b/scanEngine/templates/scanEngine/index.html index fc48e1d5..2cd92fbe 100644 --- a/scanEngine/templates/scanEngine/index.html +++ b/scanEngine/templates/scanEngine/index.html @@ -24,7 +24,7 @@ Scan Engine

Scan Engines

- + Add New Engine
diff --git a/scanEngine/urls.py b/scanEngine/urls.py index c8568a8c..1c0d2fae 100644 --- a/scanEngine/urls.py +++ b/scanEngine/urls.py @@ -5,4 +5,5 @@ from . import views urlpatterns = [ path('', views.index, name='scan_engine_index'), + path('add', views.add_engine, name='add_engine'), ] diff --git a/scanEngine/views.py b/scanEngine/views.py index 802d2a08..c4fecc4d 100644 --- a/scanEngine/views.py +++ b/scanEngine/views.py @@ -1,7 +1,25 @@ from django.shortcuts import render -from .models import EngineType +from scanEngine.models import EngineType +from scanEngine.forms import AddEngineForm +from django.contrib import messages +from django import http +from django.urls import reverse def index(request): engine_type = EngineType.objects.all().order_by('id') - context = {'scan_engine_nav_active': 'true', 'engine_type': engine_type} + context = {'scan_engine_nav_active': 'true', + 'engine_type': engine_type, + } return render(request, 'scanEngine/index.html', context) + +def add_engine(request): + form = AddEngineForm() + if request.method == "POST": + form = AddEngineForm(request.POST) + if form.is_valid(): + form.save() + messages.add_message(request, messages.INFO, 'Scan Engine Added successfully') + return http.HttpResponseRedirect(reverse('scan_engine_index')) + context = {'scan_engine_nav_active': 'true', + 'form': form} + return render(request, 'scanEngine/add_engine.html', context) diff --git a/static/assets/css/custom.css b/static/assets/css/custom.css new file mode 100644 index 00000000..27a497d7 --- /dev/null +++ b/static/assets/css/custom.css @@ -0,0 +1,5 @@ +.vertical-align-content{ + display: flex; + align-items: center; + flex-wrap: wrap; +} diff --git a/targetApp/forms.py b/targetApp/forms.py index 972e65d2..1e44b3e2 100644 --- a/targetApp/forms.py +++ b/targetApp/forms.py @@ -2,11 +2,6 @@ from django import forms from .models import Domain from .validators import validate_domain -class AddDomainForm(forms.ModelForm): - class Meta: - model = Domain - fields = ['domain_name', 'domain_description'] - class RawDomainForm(forms.Form): domain_name = forms.CharField( validators=[validate_domain], diff --git a/targetApp/views.py b/targetApp/views.py index 645c24d2..6af551b5 100644 --- a/targetApp/views.py +++ b/targetApp/views.py @@ -2,7 +2,7 @@ from django.shortcuts import render, get_object_or_404 from django import http from .models import Domain from django.contrib import messages -from .forms import AddDomainForm, RawDomainForm, UpdateDomainForm +from .forms import RawDomainForm, UpdateDomainForm from django.utils import timezone from django.urls import reverse