示例#1
0
def web_scan_schedule(request):
    """

    :param request:
    :return:
    """
    username = request.user.username
    all_scans_db = project_db.objects.filter(username=username)
    all_scheduled_scans = task_schedule_db.objects.filter(username=username)

    if request.method == 'POST':
        scan_url = request.POST.get('url')
        scan_schedule_time = request.POST.get('datetime')
        project_id = request.POST.get('project_id')
        scanner = request.POST.get('scanner')
        # periodic_task = request.POST.get('periodic_task')
        periodic_task_value = request.POST.get('periodic_task_value')
        # periodic_task = 'Yes'
        if periodic_task_value == 'HOURLY':
            periodic_time = Task.HOURLY
        elif periodic_task_value == 'DAILY':
            periodic_time = Task.DAILY
        elif periodic_task_value == 'WEEKLY':
            periodic_time = Task.WEEKLY
        elif periodic_task_value == 'EVERY_2_WEEKS':
            periodic_time = Task.EVERY_2_WEEKS
        elif periodic_task_value == 'EVERY_4_WEEKS':
            periodic_time = Task.EVERY_4_WEEKS
        else:
            periodic_time = None
        dt_str = scan_schedule_time
        dt_obj = datetime.strptime(dt_str, '%d/%m/%Y %H:%M:%S %p')
        target__split = scan_url.split(',')
        split_length = target__split.__len__()
        for i in range(0, split_length):
            target = target__split.__getitem__(i)

            if scanner == 'zap_scan':
                if periodic_task_value == 'None':
                    my_task = task(target,
                                   project_id,
                                   scanner,
                                   schedule=dt_obj,
                                   username=username)
                    task_id = my_task.id
                    print("Savedddddd taskid", task_id)
                else:

                    my_task = task(target,
                                   project_id,
                                   scanner,
                                   repeat=periodic_time,
                                   repeat_until=None,
                                   username=username)
                    task_id = my_task.id
                    print("Savedddddd taskid", task_id)
            elif scanner == 'burp_scan':
                if periodic_task_value == 'None':
                    my_task = task(target,
                                   project_id,
                                   scanner,
                                   schedule=dt_obj,
                                   username=username)
                    task_id = my_task.id
                else:
                    my_task = task(target,
                                   project_id,
                                   scanner,
                                   repeat=periodic_time,
                                   repeat_until=None)
                    task_id = my_task.id
                    print("Savedddddd taskid", task_id)
            save_scheadule = task_schedule_db(
                username=username,
                task_id=task_id,
                target=target,
                schedule_time=scan_schedule_time,
                project_id=project_id,
                scanner=scanner,
                periodic_task=periodic_task_value)
            save_scheadule.save()

    return render(request, 'web_scan_schedule.html', {
        'all_scans_db': all_scans_db,
        'all_scheduled_scans': all_scheduled_scans
    })
示例#2
0
    def post(self, request):
        all_scans_db = ProjectDb.objects.filter()
        all_scheduled_scans = task_schedule_db.objects.filter()
        scan_url = request.POST.get("url")
        scan_schedule_time = request.POST.get("datetime")
        project_id = request.POST.get("project_id")
        scanner = request.POST.get("scanner")
        # periodic_task = request.POST.get('periodic_task')
        periodic_task_value = request.POST.get("periodic_task_value")
        # periodic_task = 'Yes'
        if periodic_task_value == "HOURLY":
            periodic_time = Task.HOURLY
        elif periodic_task_value == "DAILY":
            periodic_time = Task.DAILY
        elif periodic_task_value == "WEEKLY":
            periodic_time = Task.WEEKLY
        elif periodic_task_value == "EVERY_2_WEEKS":
            periodic_time = Task.EVERY_2_WEEKS
        elif periodic_task_value == "EVERY_4_WEEKS":
            periodic_time = Task.EVERY_4_WEEKS
        else:
            periodic_time = None
        dt_str = scan_schedule_time
        dt_obj = datetime.strptime(dt_str, "%d/%m/%Y %H:%M:%S %p")
        target__split = scan_url.split(",")
        split_length = target__split.__len__()
        for i in range(0, split_length):
            target = target__split.__getitem__(i)

            if scanner == "zap_scan":
                if periodic_task_value == "None":
                    my_task = task(target,
                                   project_id,
                                   scanner,
                                   schedule=dt_obj)
                    task_id = my_task.id
                    print("Savedddddd taskid", task_id)
                else:

                    my_task = task(
                        target,
                        project_id,
                        scanner,
                        repeat=periodic_time,
                        repeat_until=None,
                    )
                    task_id = my_task.id
                    print("Savedddddd taskid", task_id)
            elif scanner == "burp_scan":
                if periodic_task_value == "None":
                    my_task = task(target,
                                   project_id,
                                   scanner,
                                   schedule=dt_obj)
                    task_id = my_task.id
                else:
                    my_task = task(
                        target,
                        project_id,
                        scanner,
                        repeat=periodic_time,
                        repeat_until=None,
                    )
                    task_id = my_task.id
                    print("Savedddddd taskid", task_id)
            save_scheadule = task_schedule_db(
                task_id=task_id,
                target=target,
                schedule_time=scan_schedule_time,
                project_id=project_id,
                scanner=scanner,
                periodic_task=periodic_task_value,
            )
            save_scheadule.save()

        return render(
            request,
            "webscanners/web_scan_schedule.html",
            {
                "all_scans_db": all_scans_db,
                "all_scheduled_scans": all_scheduled_scans
            },
        )