diff --git a/startScan/admin.py b/startScan/admin.py
index aa86cf94..e4e6b571 100644
--- a/startScan/admin.py
+++ b/startScan/admin.py
@@ -1,6 +1,7 @@
from django.contrib import admin
-from startScan.models import ScanHistory, ScannedHost, ScanActivity
+from startScan.models import ScanHistory, ScannedHost, ScanActivity, WayBackEndPoint
admin.site.register(ScanHistory)
admin.site.register(ScannedHost)
admin.site.register(ScanActivity)
+admin.site.register(WayBackEndPoint)
diff --git a/startScan/migrations/0017_waybackendpoint.py b/startScan/migrations/0017_waybackendpoint.py
new file mode 100644
index 00000000..89d49b1e
--- /dev/null
+++ b/startScan/migrations/0017_waybackendpoint.py
@@ -0,0 +1,25 @@
+# Generated by Django 3.0.6 on 2020-05-31 21:05
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('startScan', '0016_auto_20200531_2345'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='WayBackEndPoint',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('http_url', models.CharField(max_length=1000)),
+ ('content_length', models.IntegerField(default=0)),
+ ('page_title', models.CharField(max_length=1000)),
+ ('http_status', models.IntegerField(default=0)),
+ ('url_of', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='startScan.ScanHistory')),
+ ],
+ ),
+ ]
diff --git a/startScan/templates/startScan/detail_scan.html b/startScan/templates/startScan/detail_scan.html
index e97e13a0..f12202dc 100644
--- a/startScan/templates/startScan/detail_scan.html
+++ b/startScan/templates/startScan/detail_scan.html
@@ -77,7 +77,7 @@ Scan history
-
600
+ {{endpoints.count}}
Endpoints
@@ -209,12 +209,18 @@ Scan history
-
- | Hello |
- Hello |
- Hello |
- Hello |
-
+ {% for endpoint in endpoints%}
+
+ | {{endpoint.http_url}} |
+
+ {% if endpoint.http_status > 0 %}
+ {{endpoint.http_status}}
+ {% endif %}
+ |
+ {{endpoint.content_length}} |
+ {{endpoint.page_title}} |
+
+ {% endfor %}
diff --git a/startScan/views.py b/startScan/views.py
index be3646dc..0e1bda0e 100644
--- a/startScan/views.py
+++ b/startScan/views.py
@@ -2,7 +2,7 @@ from django.shortcuts import render, get_object_or_404
from django.contrib import messages
from django.http import JsonResponse, HttpResponseRedirect
from django.urls import reverse
-from .models import ScanHistory, ScannedHost, ScanActivity
+from .models import ScanHistory, ScannedHost, ScanActivity, WayBackEndPoint
from notification.models import NotificationHooks
from targetApp.models import Domain
from scanEngine.models import EngineType
@@ -25,11 +25,13 @@ def detail_scan(request, id):
subdomain_details = ScannedHost.objects.filter(scan_history__id=id)
alive_count = ScannedHost.objects.filter(scan_history__id=id).exclude(http_status__exact=0).count()
scan_activity = ScanActivity.objects.filter(scan_of__id=id)
+ endpoints = WayBackEndPoint.objects.filter(url_of__id=id)
context = {'scan_history_active': 'true',
'subdomain':subdomain_details,
'scan_history':scan_history,
'scan_activity':scan_activity,
- 'alive_count':alive_count
+ 'alive_count':alive_count,
+ 'endpoints':endpoints
}
return render(request, 'startScan/detail_scan.html', context)
@@ -173,9 +175,23 @@ def doScan(id, domain):
save_scan_activity(task, "Fetching endpoints", 1)
wayback_results_file = results_dir + current_scan_dir + '/wayback.json'
- wayback_command = 'echo ' + domain.domain_name + ' | /app/tools/gau | /app/tools/httpx -status-code -content-length -title -json -o {}'.format(wayback_results_file)
+ wayback_command = 'echo ' + domain.domain_name + ' | /app/tools/gau -providers wayback | /app/tools/httpx -status-code -content-length -title -json -o {}'.format(wayback_results_file)
os.system(wayback_command)
+ wayback_json_result = open(wayback_results_file, 'r')
+ lines = wayback_json_result.readlines()
+ for line in lines:
+ json_st = json.loads(line.strip())
+ endpoint = WayBackEndPoint()
+ endpoint.url_of = task
+ endpoint.http_url = json_st['url']
+ endpoint.content_length = json_st['content-length']
+ endpoint.http_status = json_st['status-code']
+ endpoint.page_title = json_st['title']
+ endpoint.save()
+
+
+
task.scan_status = 2
task.save()