Пример #1
0
def vuln_check(request):
    username = request.user.username
    """
    Get the detailed vulnerability information.
    :param request:
    :return:
    """
    global cve_list
    if request.method == 'GET':
        id_vul = request.GET['vuln_id']
    else:
        id_vul = ''
    vul_dat = ov_scan_result_db.objects.filter(
        username=username, vul_id=id_vul).order_by('vul_id')

    for cve_dat in vul_dat:
        cve = cve_dat.cve
        xref = cve_dat.xref
        xref_list = xref.split(",")
        cve_list = cve.split(",")

    return render(
        request, 'openvas_scan_data.html', {
            'vul_dat': vul_dat,
            'cve_list': cve_list,
            'xref_list': xref_list,
            'jira_url': jirasetting.get_jira_url(username),
            'gitlab_url': gitlabsetting.get_gitlab_url(username)
        })
Пример #2
0
def banditscan_details(request):
    """

    :param request:
    :return:
    """
    username = request.user.username

    if request.method == 'GET':
        scan_id = request.GET['scan_id']
        vuln_id = request.GET['vuln_id']
    else:
        scan_id = None
        vuln_id = None

    bandit_vuln_details = bandit_scan_results_db.objects.filter(username=username,
                                                                scan_id=scan_id,
                                                                vuln_id=vuln_id
                                                                )

    return render(request, 'banditscanner/bandit_vuln_details.html',
                  {'bandit_vuln_details': bandit_vuln_details,
                   'jira_url': jirasetting.get_jira_url(username),
                   'gitlab_url': gitlabsetting.get_gitlab_url(username)
                   }
                  )
Пример #3
0
def nikto_result(request):
    """

    :param request:
    :return:
    """
    username = request.user.username
    if request.method == 'GET':
        scan_id = request.GET['scan_id']
        scan_result = nikto_result_db.objects.filter(username=username,
                                                     scan_id=scan_id)

    return render(
        request, 'nikto_scan_result.html', {
            'scan_result': scan_result,
            'jira_url': jirasetting.get_jira_url(username),
            'gitlab_url': gitlabsetting.get_gitlab_url(username)
        })
Пример #4
0
def webinspect_vuln_data(request):
    """
    webinspect Vulnerability Data.
    :param request:
    :return:
    """
    username = request.user.username
    if request.method == 'GET':
        vuln_id = request.GET['vuln_id']
    else:
        vuln_id = None
    vuln_data = webinspect_scan_result_db.objects.filter(username=username, vuln_id=vuln_id)

    return render(request,
                  'webinspectscanner/webinspect_vuln_data.html',
                  {'vuln_data': vuln_data,
                   'jira_url': jirasetting.get_jira_url(username),
                   'gitlab_url': gitlabsetting.get_gitlab_url(username)})
Пример #5
0
def nodejsscan_vuln_data(request):
    """
    :param request:
    :return:
    """
    username = request.user.username

    if request.method == 'GET':
        scan_id = request.GET['scan_id']
        test_name = request.GET['test_name']
    else:
        scan_id = None
        test_name = None

    if request.method == "POST":
        false_positive = request.POST.get('false')
        status = request.POST.get('status')
        vuln_id = request.POST.get('vuln_id')
        scan_id = request.POST.get('scan_id')
        vuln_name = request.POST.get('vuln_name')
        nodejsscan_scan_results_db.objects.filter(
            username=username, vuln_id=vuln_id,
            scan_id=scan_id).update(false_positive=false_positive,
                                    vuln_status=status)

        if false_positive == 'Yes':
            vuln_info = nodejsscan_scan_results_db.objects.filter(
                username=username, scan_id=scan_id, vuln_id=vuln_id)
            for vi in vuln_info:
                title = vi.title
                severity = vi.severity
                dup_data = severity + title
                false_positive_hash = hashlib.sha256(
                    dup_data.encode('utf-8')).hexdigest()
                nodejsscan_scan_results_db.objects.filter(
                    username=username, vuln_id=vuln_id,
                    scan_id=scan_id).update(
                        false_positive=false_positive,
                        vuln_status='Closed',
                        false_positive_hash=false_positive_hash)

        all_nodejsscan_data = nodejsscan_scan_results_db.objects.filter(
            username=username,
            scan_id=scan_id,
            false_positive='No',
            vuln_status='Open')

        total_vul = len(all_nodejsscan_data)
        total_high = len(all_nodejsscan_data.filter(severity='High'))
        total_medium = len(all_nodejsscan_data.filter(severity='Medium'))
        total_low = len(all_nodejsscan_data.filter(severity='Low'))
        total_duplicate = len(all_nodejsscan_data.filter(vuln_duplicate='Yes'))

        nodejsscan_scan_db.objects.filter(username=username,
                                          scan_id=scan_id).update(
                                              total_vul=total_vul,
                                              high_vul=total_high,
                                              medium_vul=total_medium,
                                              low_vul=total_low,
                                          )

        return HttpResponseRedirect(
            reverse('nodejsscan:nodejsscan_vuln_data') +
            '?scan_id=%s&test_name=%s' % (scan_id, vuln_name))

    nodejsscan_vuln_data = nodejsscan_scan_results_db.objects.filter(
        username=username,
        scan_id=scan_id,
        title=test_name,
    )

    return render(
        request, 'nodejsscan/nodejsscan_vuln_data.html', {
            'nodejsscan_vuln_data': nodejsscan_vuln_data,
            'jira_url': jirasetting.get_jira_url(username),
            'gitlab_url': gitlabsetting.get_gitlab_url(username)
        })
Пример #6
0
def webinspect_vuln_out(request):
    """
    webinspect Vulnerability details.
    :param request:
    :return:
    """
    username = request.user.username

    if request.method == 'GET':
        scan_id = request.GET['scan_id']
        name = request.GET['scan_name']
    if request.method == "POST":
        false_positive = request.POST.get('false')
        status = request.POST.get('status')
        vuln_id = request.POST.get('vuln_id')
        scan_id = request.POST.get('scan_id')
        vuln_name = request.POST.get('vuln_name')
        webinspect_scan_result_db.objects.filter(username=username, vuln_id=vuln_id,
                                                 scan_id=scan_id).update(false_positive=false_positive,
                                                                         vuln_status=status)

        if false_positive == 'Yes':
            vuln_info = webinspect_scan_result_db.objects.filter(username=username, scan_id=scan_id, vuln_id=vuln_id)
            for vi in vuln_info:
                name = vi.name
                url = vi.vuln_url
                Severity = vi.severity
                dup_data = name + url + Severity
                false_positive_hash = hashlib.sha256(dup_data.encode('utf-8')).hexdigest()
                webinspect_scan_result_db.objects.filter(username=username, vuln_id=vuln_id,
                                                         scan_id=scan_id).update(false_positive=false_positive,
                                                                                 vuln_status='Closed',
                                                                                 false_positive_hash=false_positive_hash
                                                                                 )

        webinspect_all_vul = webinspect_scan_result_db.objects.filter(username=username, scan_id=scan_id, false_positive='No',
                                                                      vuln_status='Open')

        total_critical = len(webinspect_all_vul.filter(severity='Critical'))
        total_high = len(webinspect_all_vul.filter(severity="High"))
        total_medium = len(webinspect_all_vul.filter(severity="Medium"))
        total_low = len(webinspect_all_vul.filter(severity="Low"))
        total_info = len(webinspect_all_vul.filter(severity="Information"))
        total_duplicate = len(webinspect_all_vul.filter(severity='Yes'))
        total_vul = total_critical + total_high + total_medium + total_low + total_info

        webinspect_scan_db.objects.filter(username=username, scan_id=scan_id).update(total_vul=total_vul,
                                                                  high_vul=total_high,
                                                                  medium_vul=total_medium,
                                                                  low_vul=total_low,
                                                                  critical_vul=total_critical,
                                                                  info_vul=total_info,
                                                                  )

        return HttpResponseRedirect(
            reverse('webinspectscanner:webinspect_vuln_out') + '?scan_id=%s&scan_name=%s' % (scan_id, vuln_name))

    vuln_data = webinspect_scan_result_db.objects.filter(username=username, scan_id=scan_id,
                                                         name=name,
                                                        )

    return render(request,
                  'webinspectscanner/webinspect_vuln_out.html',
                  {'vuln_data': vuln_data,
                   'jira_url': jirasetting.get_jira_url(username),
                   'gitlab_url': gitlabsetting.get_gitlab_url(username),
                   })
Пример #7
0
def banditscan_vuln_data(request):
    """
    :param request:
    :return:
    """
    username = request.user.username
    jira_url = ''
    jira = jirasetting.objects.filter(username=username)
    for d in jira:
        jira_url = d.jira_server

    if request.method == 'GET':
        scan_id = request.GET['scan_id']
        test_name = request.GET['test_name']
    else:
        scan_id = None
        test_name = None

    if request.method == "POST":
        false_positive = request.POST.get('false')
        status = request.POST.get('status')
        vuln_id = request.POST.get('vuln_id')
        scan_id = request.POST.get('scan_id')
        vuln_name = request.POST.get('vuln_name')
        bandit_scan_results_db.objects.filter(username=username, vuln_id=vuln_id,
                                              scan_id=scan_id).update(false_positive=false_positive,
                                                                      vuln_status=status)

        if false_positive == 'Yes':
            vuln_info = bandit_scan_results_db.objects.filter(username=username, scan_id=scan_id, vuln_id=vuln_id)
            for vi in vuln_info:
                name = vi.test_name
                filename = vi.filename
                Severity = vi.issue_severity
                dup_data = name + filename + Severity
                false_positive_hash = hashlib.sha256(dup_data.encode('utf-8')).hexdigest()
                bandit_scan_results_db.objects.filter(username=username, vuln_id=vuln_id,
                                                      scan_id=scan_id).update(false_positive=false_positive,
                                                                              vuln_status='Closed',
                                                                              false_positive_hash=false_positive_hash
                                                                              )

        all_bandit_data = bandit_scan_results_db.objects.filter(username=username, scan_id=scan_id, false_positive='No',
                                                                vuln_status='Open')

        total_vul = len(all_bandit_data)
        total_high = len(all_bandit_data.filter(issue_severity="HIGH"))
        total_medium = len(all_bandit_data.filter(issue_severity="MEDIUM"))
        total_low = len(all_bandit_data.filter(issue_severity="LOW"))
        total_duplicate = len(all_bandit_data.filter(vuln_duplicate='Yes'))

        bandit_scan_db.objects.filter(username=username, scan_id=scan_id).update(
            total_vul=total_vul,
            high_vul=total_high,
            medium_vul=total_medium,
            low_vul=total_low
        )

        return HttpResponseRedirect(
            reverse('banditscanner:banditscan_vuln_data') + '?scan_id=%s&test_name=%s' % (scan_id, vuln_name))

    bandit_vuln_data = bandit_scan_results_db.objects.filter(username=username, scan_id=scan_id,
                                                             test_name=test_name,
                                                             )

    return render(request, 'banditscanner/banditscan_vuln_data.html',
                  {'bandit_vuln_data': bandit_vuln_data,
                   'jira_url': jirasetting.get_jira_url(username),
                   'gitlab_url': gitlabsetting.get_gitlab_url(username)
                   })
Пример #8
0
def checkmarx_vuln_data(request):
    """
    :param request:
    :return:
    """
    username = request.user.username

    if request.method == 'GET':
        scan_id = request.GET['scan_id']
        name = request.GET['name']
    else:
        scan_id = None
        name = None

    if request.method == "POST":
        false_positive = request.POST.get('false')
        status = request.POST.get('status')
        vuln_id = request.POST.get('vuln_id')
        scan_id = request.POST.get('scan_id')
        vuln_name = request.POST.get('vuln_name')
        checkmarx_scan_results_db.objects.filter(username=username, vuln_id=vuln_id,
                                                 scan_id=scan_id).update(false_positive=false_positive,
                                                                         vuln_status=status)

        if false_positive == 'Yes':
            vuln_info = checkmarx_scan_results_db.objects.filter(username=username, scan_id=scan_id, vuln_id=vuln_id)
            for vi in vuln_info:
                name = vi.name
                severity = vi.severity
                file_name = vi.file_name
                dup_data = str(name) + str(severity) + str(file_name)
                false_positive_hash = hashlib.sha256(dup_data.encode('utf-8')).hexdigest()
                checkmarx_scan_results_db.objects.filter(username=username, vuln_id=vuln_id,
                                                         scan_id=scan_id).update(false_positive=false_positive,
                                                                                 vuln_status='Closed',
                                                                                 false_positive_hash=false_positive_hash)

        all_checkmarx_data = checkmarx_scan_results_db.objects.filter(username=username, scan_id=scan_id,
                                                                      false_positive='No', vuln_status='Open')

        total_vul = len(all_checkmarx_data)
        total_high = len(all_checkmarx_data.filter(severity='High'))
        total_medium = len(all_checkmarx_data.filter(severity='Medium'))
        total_low = len(all_checkmarx_data.filter(severity='Low'))
        total_duplicate = len(all_checkmarx_data.filter(vuln_duplicate='Yes'))

        checkmarx_scan_db.objects.filter(username=username, scan_id=scan_id).update(
            total_vul=total_vul,
            high_vul=total_high,
            medium_vul=total_medium,
            low_vul=total_low
        )

        return HttpResponseRedirect(
            reverse('checkmarx:checkmarx_vuln_data') + '?scan_id=%s&name=%s' % (scan_id, vuln_name))

    checkmarx_vuln_data = checkmarx_scan_results_db.objects.filter(username=username, scan_id=scan_id,
                                                                   name=name)

    return render(request, 'checkmarx/checkmarx_vuln_data.html',
                  {'checkmarx_vuln_data': checkmarx_vuln_data,
                   'jira_url': jirasetting.get_jira_url(username),
                   'gitlab_url': gitlabsetting.get_gitlab_url(username)
                   })
Пример #9
0
def findbugs_vuln_data(request):
    """
    :param request:
    :return:
    """
    username = request.user.username
    if request.method == 'GET':
        scan_id = request.GET['scan_id']
        test_name = request.GET['test_name']
    else:
        scan_id = None
        test_name = None

    if request.method == "POST":
        false_positive = request.POST.get('false')
        status = request.POST.get('status')
        vuln_id = request.POST.get('vuln_id')
        scan_id = request.POST.get('scan_id')
        vuln_name = request.POST.get('vuln_name')
        findbugs_scan_results_db.objects.filter(
            username=username, vuln_id=vuln_id,
            scan_id=scan_id).update(false_positive=false_positive,
                                    vuln_status=status)

        if false_positive == 'Yes':
            vuln_info = findbugs_scan_results_db.objects.filter(
                username=username, scan_id=scan_id, vuln_id=vuln_id)
            for vi in vuln_info:
                name = vi.name
                classname = vi.classname
                risk = vi.risk
                dup_data = name + classname + risk
                false_positive_hash = hashlib.sha256(
                    dup_data.encode('utf-8')).hexdigest()
                findbugs_scan_results_db.objects.filter(
                    username=username, vuln_id=vuln_id,
                    scan_id=scan_id).update(
                        false_positive=false_positive,
                        vuln_status='Closed',
                        false_positive_hash=false_positive_hash)

        all_findbugs_data = findbugs_scan_results_db.objects.filter(
            username=username,
            scan_id=scan_id,
            false_positive='No',
            vuln_status='Open')

        total_vul = len(all_findbugs_data)
        total_high = len(all_findbugs_data.filter(priority="1"))
        total_medium = len(all_findbugs_data.filter(priority="2"))
        total_low = len(all_findbugs_data.filter(priority="3"))
        total_duplicate = len(all_findbugs_data.filter(vuln_duplicate='Yes'))

        findbugs_scan_db.objects.filter(
            username=username, scan_id=scan_id).update(total_vul=total_vul,
                                                       high_vul=total_high,
                                                       medium_vul=total_medium,
                                                       low_vul=total_low)

        return HttpResponseRedirect(
            reverse('findbugs:findbugs_vuln_data') +
            '?scan_id=%s&test_name=%s' % (scan_id, vuln_name))

    findbugs_vuln_data = findbugs_scan_results_db.objects.filter(
        username=username, scan_id=scan_id, name=test_name)

    return render(
        request, 'findbugs/findbugsscan_vuln_data.html', {
            'findbugs_vuln_data': findbugs_vuln_data,
            'jira_url': jirasetting.get_jira_url(username),
            'gitlab_url': gitlabsetting.get_gitlab_url(username)
        })
Пример #10
0
def dependencycheck_vuln_data(request):
    """
    :param request:
    :return:
    """
    username = request.user.username
    if request.method == 'GET':
        scan_id = request.GET['scan_id']
        test_name = request.GET['test_name']
    else:
        scan_id = None
        test_name = None

    if request.method == "POST":
        false_positive = request.POST.get('false')
        status = request.POST.get('status')
        vuln_id = request.POST.get('vuln_id')
        scan_id = request.POST.get('scan_id')
        vuln_name = request.POST.get('vuln_name')
        dependencycheck_scan_results_db.objects.filter(
            username=username, vuln_id=vuln_id,
            scan_id=scan_id).update(false_positive=false_positive,
                                    vuln_status=status)

        if false_positive == 'Yes':
            vuln_info = dependencycheck_scan_results_db.objects.filter(
                username=username, scan_id=scan_id, vuln_id=vuln_id)
            for vi in vuln_info:
                name = vi.name
                filename = vi.fileName
                Severity = vi.severity
                dup_data = name + filename + Severity
                false_positive_hash = hashlib.sha256(
                    dup_data.encode('utf-8')).hexdigest()
                dependencycheck_scan_results_db.objects.filter(
                    username=username, vuln_id=vuln_id,
                    scan_id=scan_id).update(
                        false_positive=false_positive,
                        vuln_status='Closed',
                        false_positive_hash=false_positive_hash)

        all_dependency_data = dependencycheck_scan_results_db.objects.filter(
            username=username,
            scan_id=scan_id,
            false_positive='No',
            vuln_status='Open')

        total_vul = len(all_dependency_data)
        total_high = len(all_dependency_data.filter(severity="High"))
        total_medium = len(all_dependency_data.filter(severity="Medium"))
        total_low = len(all_dependency_data.filter(severity="Low"))
        total_duplicate = len(all_dependency_data.filter(vuln_duplicate='Yes'))

        dependencycheck_scan_db.objects.filter(username=username,
                                               scan_id=scan_id).update(
                                                   total_vul=total_vul,
                                                   high_vul=total_high,
                                                   medium_vul=total_medium,
                                                   low_vul=total_low)

        return HttpResponseRedirect(
            reverse('dependencycheck:dependencycheck_vuln_data') +
            '?scan_id=%s&test_name=%s' % (scan_id, vuln_name))

    dependencycheck_vuln_data = dependencycheck_scan_results_db.objects.filter(
        username=username, scan_id=scan_id, name=test_name)

    return render(
        request, 'dependencycheck/dependencycheckscan_vuln_data.html', {
            'dependencycheck_vuln_data': dependencycheck_vuln_data,
            'jira_url': jirasetting.get_jira_url(username),
            'gitlab_url': gitlabsetting.get_gitlab_url(username)
        })
Пример #11
0
def scan_vul_details(request):
    username = request.user.username
    """
    Get the Network scan vulnerability details.
    :param request:
    :return:
    """
    scanid = ""
    if request.method == 'GET':
        scanid = request.GET['scan_id']

    if request.method == 'POST':
        vuln_id = request.POST.get('vuln_id')
        scan_id = request.POST.get('scan_id')
        false_positive = request.POST.get('false')
        status = request.POST.get('status')

        ov_scan_result_db.objects.filter(username=username,
                                         scan_id=scan_id,
                                         vul_id=vuln_id).update(
                                             false_positive=false_positive,
                                             vuln_status=status)

        if false_positive == 'Yes':
            vuln_info = ov_scan_result_db.objects.filter(username=username,
                                                         scan_id=scan_id,
                                                         vul_id=vuln_id)
            for vi in vuln_info:
                name = vi.name
                host = vi.host
                severity = vi.severity
                port = vi.port
                dup_data = name + host + severity + port
                false_positive_hash = hashlib.sha256(
                    dup_data.encode('utf-8')).hexdigest()
                ov_scan_result_db.objects.filter(
                    username=username, scan_id=scan_id, vul_id=vuln_id).update(
                        false_positive=false_positive,
                        vuln_status='Closed',
                        false_positive_hash=false_positive_hash)
        openvas_vul = ov_scan_result_db.objects.filter(username=username,
                                                       scan_id=scan_id,
                                                       false_positive='No',
                                                       vuln_status='Open')

        total_high = len(openvas_vul.filter(threat="High"))
        total_medium = len(openvas_vul.filter(threat="Medium"))
        total_low = len(openvas_vul.filter(threat="Low"))
        total_duplicate = len(openvas_vul.filter(vuln_duplicate='Yes'))
        total_vul = total_high + total_medium + total_low

        openvas_scan_db.objects.filter(username=username, scan_id=scan_id). \
            update(total_vul=total_vul,
                   high_vul=total_high,
                   medium_vul=total_medium,
                   low_vul=total_low,
                   total_dup=total_duplicate,
                   )

        return HttpResponseRedirect(
            reverse('networkscanners:vul_details') + '?scan_id=%s' % scan_id)

    all_vuln = ov_scan_result_db.objects.filter(
        username=username,
        scan_id=scanid,
    ).values('name', 'severity', 'vuln_color', 'threat', 'host', 'port',
             'vul_id', 'jira_ticket', 'false_positive',
             'vuln_status').distinct()

    return render(
        request, 'openvas_vuln_list.html', {
            'all_vuln': all_vuln,
            'scan_id': scanid,
            'jira_url': jirasetting.get_jira_url(username),
            'gitlab_url': gitlabsetting.get_gitlab_url(username)
        })
Пример #12
0
def arachni_vuln_out(request):
    """
    Arachni Vulnerability details.
    :param request:
    :return:
    """
    username = request.user.username

    if request.method == 'GET':
        scan_id = request.GET['scan_id']
        name = request.GET['scan_name']
    if request.method == "POST":
        false_positive = request.POST.get('false')
        status = request.POST.get('status')
        vuln_id = request.POST.get('vuln_id')
        scan_id = request.POST.get('scan_id')
        vuln_name = request.POST.get('vuln_name')
        arachni_scan_result_db.objects.filter(username=username, vuln_id=vuln_id,
                                              scan_id=scan_id).update(false_positive=false_positive, vuln_status=status)

        if false_positive == 'Yes':
            vuln_info = arachni_scan_result_db.objects.filter(username=username, scan_id=scan_id, vuln_id=vuln_id)
            for vi in vuln_info:
                name = vi.name
                url = vi.url
                severity = vi.severity
                dup_data = name + url + severity
                print(dup_data)
                false_positive_hash = hashlib.sha256(dup_data.encode('utf-8')).hexdigest()
                arachni_scan_result_db.objects.filter(username=username, vuln_id=vuln_id,
                                                      scan_id=scan_id).update(false_positive=false_positive,
                                                                              vuln_status='Closed',
                                                                              false_positive_hash=false_positive_hash
                                                                              )

        arachni_all_vul = arachni_scan_result_db.objects.filter(username=username, scan_id=scan_id, false_positive='No',
                                                                vuln_status='Open')

        total_high = len(arachni_all_vul.filter(severity="High"))
        total_medium = len(arachni_all_vul.filter(severity="Medium"))
        total_low = len(arachni_all_vul.filter(severity="Low"))
        total_info = len(arachni_all_vul.filter(severity="Informational"))
        total_duplicate = len(arachni_all_vul.filter(vuln_duplicate='Yes'))
        total_vul = total_high + total_medium + total_low + total_info

        arachni_scan_db.objects.filter(scan_id=scan_id, username=username).update(
            total_vul=total_vul,
            high_vul=total_high,
            medium_vul=total_medium,
            low_vul=total_low,
            info_vul=total_info,
            total_dup=total_duplicate,
        )

        return HttpResponseRedirect(
            reverse('arachniscanner:arachni_vuln_out') + '?scan_id=%(scan_id)s&scan_name=%(vuln_name)s' % {
                'scan_id': scan_id,
                'vuln_name': vuln_name})

    vuln_data = arachni_scan_result_db.objects.filter(username=username,
                                                      scan_id=scan_id,
                                                      name=name,
                                                      )

    return render(request,
                  'arachniscanner/arachni_vuln_out.html',
                  {'vuln_data': vuln_data,
                   'jira_url': jirasetting.get_jira_url(username),
                   'gitlab_url': gitlabsetting.get_gitlab_url(username),
                   })
Пример #13
0
def nessus_vuln_data(request):
    """
    :param request:
    :return:
    """
    global Target
    username = request.user.username

    if request.method == 'GET':
        scan_id = request.GET['scan_id']
        target = request.GET['target']
    else:
        scan_id = None
        target = None

    if request.method == "POST":
        false_positive = request.POST.get('false')
        status = request.POST.get('status')
        vuln_id = request.POST.get('vuln_id')
        scan_id = request.POST.get('scan_id')
        nessus_scan_results_db.objects.filter(username=username, vuln_id=vuln_id,
                                              scan_id=scan_id).update(false_positive=false_positive,
                                                                      vuln_status=status)

        if false_positive == 'Yes':
            vuln_info = nessus_scan_results_db.objects.filter(username=username, scan_id=scan_id, vuln_id=vuln_id)
            for vi in vuln_info:
                Name = vi.plugin_name
                Severity = vi.risk_factor
                Target = vi.target
                dup_data = Name + Severity + Target
                false_positive_hash = hashlib.sha256(dup_data.encode('utf-8')).hexdigest()
                nessus_scan_results_db.objects.filter(username=username, vuln_id=vuln_id,
                                                      scan_id=scan_id).update(false_positive=false_positive,
                                                                              vuln_status='Closed',
                                                                              false_positive_hash=false_positive_hash
                                                                              )

        target_filter = nessus_scan_results_db.objects.filter(username=username,
                                                              scan_id=scan_id,
                                                              false_positive='No',
                                                              vuln_status='Open',
                                                              target=Target)

        target_total_vuln = len(target_filter)
        target_total_high = len(target_filter.filter(risk_factor="High"))
        target_total_medium = len(target_filter.filter(risk_factor="Medium"))
        target_total_low = len(target_filter.filter(risk_factor="Low"))
        target_total_duplicate = len(target_filter.filter(vuln_duplicate='Yes'))

        nessus_targets_db.objects.filter(username=username, scan_id=scan_id, target=Target).update(
            total_vuln=target_total_vuln,
            total_high=target_total_high,
            total_medium=target_total_medium,
            total_low=target_total_low,
            total_dup=target_total_duplicate,
        )

        ov_all_vul = nessus_scan_results_db.objects.filter(username=username, scan_id=scan_id, false_positive='No',
                                                           vuln_status='Open')
        total_vuln = len(ov_all_vul)
        total_high = len(ov_all_vul.filter(risk_factor="High"))
        total_medium = len(ov_all_vul.filter(risk_factor="Medium"))
        total_low = len(ov_all_vul.filter(risk_factor="Low"))
        total_duplicate = len(ov_all_vul.filter(vuln_duplicate='Yes'))

        nessus_scan_db.objects.filter(username=username, scan_id=scan_id) \
            .update(total_vuln=total_vuln,
                    total_high=total_high,
                    total_medium=total_medium,
                    total_low=total_low,
                    total_dup=total_duplicate,
                    )

        return HttpResponseRedirect(
            reverse('nessus:nessus_vuln_data') + '?scan_id=%s&target=%s' % (scan_id, Target))

    nessus_vuln_data = nessus_scan_results_db.objects.filter(username=username, scan_id=scan_id,
                                                             target=target)

    return render(request, 'nessus/nessusscan_vuln_data.html',
                  {'nessus_vuln_data': nessus_vuln_data,
                   'jira_url': jirasetting.get_jira_url(username),
                   'gitlab_url': gitlabsetting.get_gitlab_url(username)
                   })
Пример #14
0
def burp_vuln_out(request):
    """
    The function calling burp vulnerability details.
    :param request:
    :return:
    """
    username = request.user.username

    if request.method == 'GET':
        scan_id = request.GET['scan_id']
        name = request.GET['scan_name']
    if request.method == "POST":
        false_positive = request.POST.get('false')
        vuln_status = request.POST.get('status')
        vuln_id = request.POST.get('vuln_id')
        scan_id = request.POST.get('scan_id')
        vuln_name = request.POST.get('vuln_name')
        burp_scan_result_db.objects.filter(username=username, vuln_id=vuln_id,
                                           scan_id=scan_id).update(false_positive=false_positive,
                                                                   vuln_status=vuln_status)

        if false_positive == 'Yes':
            vuln_info = burp_scan_result_db.objects.filter(username=username, scan_id=scan_id, vuln_id=vuln_id)
            for vi in vuln_info:
                name = vi.name
                location = vi.path
                severity = vi.severity
                dup_data = name + location + severity
                false_positive_hash = hashlib.sha256(dup_data.encode('utf-8')).hexdigest()
                burp_scan_result_db.objects.filter(username=username, vuln_id=vuln_id,
                                                   scan_id=scan_id).update(false_positive=false_positive,
                                                                           vuln_status='Closed',
                                                                           false_positive_hash=false_positive_hash
                                                                           )
        burp_all_vul = burp_scan_result_db.objects.filter(username=username, scan_id=scan_id, false_positive='No',
                                                          vuln_status='Open')
        total_vul = len(burp_all_vul)
        total_high = len(burp_all_vul.filter(severity="High"))
        total_medium = len(burp_all_vul.filter(severity="Medium"))
        total_low = len(burp_all_vul.filter(severity="Low"))
        total_info = len(burp_all_vul.filter(severity="Information"))
        total_duplicate = len(burp_all_vul.filter(vuln_duplicate='Yes'))
        burp_scan_db.objects.filter(username=username, scan_id=scan_id).update(
            total_vul=total_vul,
            high_vul=total_high,
            medium_vul=total_medium,
            low_vul=total_low,
            info_vul=total_info,
            total_dup=total_duplicate
        )

        return HttpResponseRedirect(
            reverse('burpscanner:burp_vuln_out') + '?scan_id=%s&scan_name=%s' % (scan_id,
                                                                                 vuln_name))
    vuln_data = burp_scan_result_db.objects.filter(username=username,
                                                   scan_id=scan_id,
                                                   name=name,
                                                   )

    return render(request, 'burpscanner/burp_vuln_out.html', {'vuln_data': vuln_data,
                                                              'jira_url': jirasetting.get_jira_url(username),
                                                              'gitlab_url': gitlabsetting.get_gitlab_url(username),
                                                              })