mirror of
https://github.com/yogeshojha/rengine.git
synced 2026-08-31 20:29:37 +02:00
212 lines
6.7 KiB
Python
212 lines
6.7 KiB
Python
from django import forms
|
|
from scanEngine.models import EngineType, Configuration, InterestingLookupModel
|
|
from django_ace import AceWidget
|
|
from reNgine.validators import validate_short_name
|
|
|
|
|
|
class AddEngineForm(forms.ModelForm):
|
|
class Meta:
|
|
model = EngineType
|
|
fields = '__all__'
|
|
engine_name = forms.CharField(
|
|
required=True,
|
|
widget=forms.TextInput(
|
|
attrs={
|
|
"class": "form-control",
|
|
"id": "scan_engine_name",
|
|
"placeholder": "Custom Engine"}))
|
|
subdomain_discovery = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput(attrs={"checked": ""}))
|
|
screenshot = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput(attrs={"checked": ""}))
|
|
dir_file_search = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput(attrs={}))
|
|
port_scan = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput(attrs={}))
|
|
fetch_url = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput(attrs={"checked": ""}))
|
|
vulnerability_scan = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput(attrs={"checked": ""}))
|
|
osint = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput(attrs={"checked": ""}))
|
|
yaml_configuration = forms.CharField(widget=AceWidget(
|
|
mode="yaml",
|
|
theme="monokai",
|
|
width="100%",
|
|
height="450px",
|
|
tabsize=4,
|
|
fontsize=13,
|
|
toolbar=True,
|
|
attrs={"id": "editor", "value": "ok"}))
|
|
|
|
|
|
class UpdateEngineForm(forms.ModelForm):
|
|
class Meta:
|
|
model = EngineType
|
|
fields = '__all__'
|
|
engine_name = forms.CharField(
|
|
required=True,
|
|
widget=forms.TextInput(
|
|
attrs={
|
|
"class": "form-control",
|
|
"id": "scan_engine_name",
|
|
"placeholder": "Custom Engine"}))
|
|
subdomain_discovery = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput())
|
|
screenshot = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput())
|
|
dir_file_search = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput())
|
|
port_scan = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput())
|
|
fetch_url = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput())
|
|
vulnerability_scan = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput())
|
|
osint = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput())
|
|
yaml_configuration = forms.CharField(widget=AceWidget(
|
|
mode="yaml",
|
|
theme="monokai",
|
|
width="100%",
|
|
height="450px",
|
|
tabsize=4,
|
|
fontsize=13,
|
|
toolbar=True,))
|
|
|
|
def set_value(self, engine):
|
|
self.initial['engine_name'] = engine.engine_name
|
|
self.initial['subdomain_discovery'] = engine.subdomain_discovery
|
|
self.initial['dir_file_search'] = engine.dir_file_search
|
|
self.initial['port_scan'] = engine.port_scan
|
|
self.initial['fetch_url'] = engine.fetch_url
|
|
self.initial['yaml_configuration'] = engine.yaml_configuration
|
|
self.initial['vulnerability_scan'] = engine.vulnerability_scan
|
|
self.initial['osint'] = engine.osint
|
|
self.initial['screenshot'] = engine.screenshot
|
|
|
|
|
|
class AddWordlistForm(forms.Form):
|
|
name = forms.CharField(
|
|
required=True,
|
|
widget=forms.TextInput(
|
|
attrs={'class': 'form-control',
|
|
'id': 'name',
|
|
'placeholder': 'my awesome wordlist', }))
|
|
short_name = forms.CharField(
|
|
required=True,
|
|
validators=[validate_short_name],
|
|
widget=forms.TextInput(
|
|
attrs={
|
|
'class': 'form-control',
|
|
'id': 'short_name',
|
|
'placeholder': 'my_awesome_wordlist', }))
|
|
upload_file = forms.FileField(
|
|
required=True,
|
|
widget=forms.FileInput(
|
|
attrs={'class': 'custom-file-input',
|
|
'id': 'txtFile',
|
|
'multiple': '',
|
|
'accept': '.txt', }))
|
|
|
|
|
|
class ConfigurationForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Configuration
|
|
fields = '__all__'
|
|
name = forms.CharField(
|
|
required=True,
|
|
widget=forms.TextInput(
|
|
attrs={'class': 'form-control',
|
|
'id': 'name',
|
|
'placeholder': 'Configuration Name', }))
|
|
short_name = forms.CharField(
|
|
required=True,
|
|
validators=[validate_short_name],
|
|
widget=forms.TextInput(
|
|
attrs={
|
|
'class': 'form-control',
|
|
'id': 'short_name',
|
|
'placeholder': 'my_awesome_configuration', }))
|
|
content = forms.CharField(widget=AceWidget(
|
|
mode="text",
|
|
theme="monokai",
|
|
width="100%",
|
|
height="450px",
|
|
tabsize=4,
|
|
fontsize=13,
|
|
toolbar=True,))
|
|
|
|
def set_value(self, configuration):
|
|
self.initial['name'] = configuration.name
|
|
self.initial['short_name'] = configuration.short_name
|
|
self.initial['content'] = configuration.content
|
|
|
|
|
|
class InterestingLookupForm(forms.ModelForm):
|
|
class Meta:
|
|
model = InterestingLookupModel
|
|
fields = '__all__'
|
|
keywords = forms.CharField(
|
|
required=False,
|
|
widget=forms.TextInput(
|
|
attrs={
|
|
"class": "form-control",
|
|
"id": "keywords",
|
|
"placeholder": "Interesting Keywords",
|
|
}))
|
|
|
|
custom_type = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.HiddenInput(
|
|
attrs={
|
|
"value": 'true'
|
|
}))
|
|
|
|
title_lookup = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput(
|
|
attrs={
|
|
"class": "new-control-input",
|
|
}))
|
|
|
|
url_lookup = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput(
|
|
attrs={
|
|
"class": "new-control-input",
|
|
}))
|
|
|
|
condition_200_http_lookup = forms.BooleanField(
|
|
required=False,
|
|
widget=forms.CheckboxInput(
|
|
attrs={
|
|
"class": "new-control-input",
|
|
}))
|
|
|
|
def set_value(self, key):
|
|
print(key.url_lookup)
|
|
self.initial['keywords'] = key.keywords
|
|
self.initial['title_lookup'] = key.title_lookup
|
|
self.initial['url_lookup'] = key.url_lookup
|
|
self.initial['condition_200_http_lookup'] = key.condition_200_http_lookup
|
|
|
|
def initial_checkbox(self):
|
|
self.initial['title_lookup'] = True
|
|
self.initial['url_lookup'] = True
|
|
self.initial['condition_200_http_lookup'] = False
|