예제 #1
0
파일: app.py 프로젝트: juan157/houndsploit
def get_results_table():
    """
    Render a table with a list of search results.
    :return: results_table.html template with search results.
    """
    if request.method == 'POST':
        searched_text = request.form['searched-text']
        searched_text = substitute_with_suggestions(searched_text)
        suggested_search_text = propose_suggestions(searched_text)
        if str(searched_text).isspace() or searched_text == "":
            return render_template('home.html')
        key_words_list = (str(searched_text).upper()).split()
        exploits_list = search_vulnerabilities_in_db(searched_text,
                                                     'searcher_exploit')
        for result in exploits_list:
            if result.port is None:
                result.port = ''
        shellcodes_list = search_vulnerabilities_in_db(searched_text,
                                                       'searcher_shellcode')
        if str(searched_text).isnumeric():
            exploits_list = highlight_keywords_in_file(key_words_list,
                                                       exploits_list)
            shellcodes_list = highlight_keywords_in_file(
                key_words_list, shellcodes_list)
            exploits_list = highlight_keywords_in_port(key_words_list,
                                                       exploits_list)
        exploits_list = highlight_keywords_in_description(
            key_words_list, exploits_list)
        shellcodes_list = highlight_keywords_in_description(
            key_words_list, shellcodes_list)
        return render_template('results_table.html',
                               searched_item=searched_text,
                               exploits_list=exploits_list,
                               shellcodes_list=shellcodes_list,
                               searched_text=searched_text,
                               suggested_search_text=suggested_search_text)
    else:
        return render_template('home.html')
예제 #2
0
def get_results_table():
    """
    Render a table with a list of search results.
    :return: results_table.html template with search results.
    """
    if request.method == 'POST':
        current_exploits_page = request.form['hid-e-page']
        current_view = request.form['current-view']
        try:
            current_exploits_page = int(current_exploits_page)
        except ValueError:
            current_exploits_page = 1

        current_shellcodes_page = request.form['hid-s-page']
        current_view = request.form['current-view']
        try:
            current_shellcodes_page = int(current_shellcodes_page)
        except ValueError:
            current_shellcodes_page = 1

        searched_text = request.form['searched-text']
        searched_text = substitute_with_suggestions(searched_text)
        suggested_search_text = propose_suggestions(searched_text)
        if str(searched_text).isspace() or searched_text == "":
            return render_template('home.html',
                                   current_exploits_page=1,
                                   current_shellcodes_page=1)
        key_words_list = (str(searched_text).upper()).split()

        exploits_list = search_vulnerabilities_in_db(searched_text,
                                                     'searcher_exploit')
        n_exploits = len(exploits_list)

        latest_exploits_page = get_n_needed_pages(n_exploits)
        if current_exploits_page < 1:
            current_exploits_page = 1
            index_first_result = 0
        elif current_exploits_page > latest_exploits_page:
            current_exploits_page = latest_exploits_page
            index_first_result = (int(current_exploits_page) -
                                  1) * N_RESULTS_FOR_PAGE
        else:
            index_first_result = (int(current_exploits_page) -
                                  1) * N_RESULTS_FOR_PAGE
        index_last_result = index_first_result + N_RESULTS_FOR_PAGE
        exploits_list = exploits_list[index_first_result:index_last_result]
        for result in exploits_list:
            if result.port is None:
                result.port = ''

        shellcodes_list = search_vulnerabilities_in_db(searched_text,
                                                       'searcher_shellcode')
        n_shellcodes = len(shellcodes_list)

        latest_shellcodes_page = get_n_needed_pages(n_shellcodes)
        if current_shellcodes_page < 1:
            current_shellcodes_page = 1
            index_first_result = 0
        elif current_shellcodes_page > latest_shellcodes_page:
            current_shellcodes_page = latest_shellcodes_page
            index_first_result = (int(current_shellcodes_page) -
                                  1) * N_RESULTS_FOR_PAGE
        else:
            index_first_result = (int(current_shellcodes_page) -
                                  1) * N_RESULTS_FOR_PAGE
        index_last_result = index_first_result + N_RESULTS_FOR_PAGE
        shellcodes_list = shellcodes_list[index_first_result:index_last_result]

        if str(searched_text).isnumeric():
            exploits_list = highlight_keywords_in_file(key_words_list,
                                                       exploits_list)
            shellcodes_list = highlight_keywords_in_file(
                key_words_list, shellcodes_list)
            exploits_list = highlight_keywords_in_port(key_words_list,
                                                       exploits_list)
        exploits_list = highlight_keywords_in_description(
            key_words_list, exploits_list)
        shellcodes_list = highlight_keywords_in_description(
            key_words_list, shellcodes_list)
        return render_template('results_table.html',
                               searched_item=searched_text,
                               exploits_list=exploits_list,
                               shellcodes_list=shellcodes_list,
                               searched_text=searched_text,
                               suggested_search_text=suggested_search_text,
                               n_exploits=n_exploits,
                               current_exploits_page=current_exploits_page,
                               latest_exploits_page=latest_exploits_page,
                               current_view=current_view,
                               n_shellcodes=n_shellcodes,
                               current_shellcodes_page=current_shellcodes_page,
                               latest_shellcodes_page=latest_shellcodes_page)
    else:
        return render_template('home.html',
                               current_exploits_page=1,
                               current_shellcodes_page=1)
예제 #3
0
def get_results_table_advanced():
    """
    Render a table with a list of search results.
    :return: results_table.html template with search results.
    """
    vulnerability_types_list, vulnerability_platforms_list = get_vulnerability_filters(
    )
    if request.method == 'POST':
        current_exploits_page = request.form['hid-e-page']
        current_view = request.form['current-view']
        try:
            current_exploits_page = int(current_exploits_page)
        except ValueError:
            current_exploits_page = 1

        current_shellcodes_page = request.form['hid-s-page']
        current_view = request.form['current-view']
        try:
            current_shellcodes_page = int(current_shellcodes_page)
        except ValueError:
            current_shellcodes_page = 1

        searched_text = request.form['searched-text']
        operator_filter = request.form['search-operator']
        author_filter = request.form['author']
        type_filter = request.form['type']
        platform_filter = request.form['platform']
        port_filter = request.form['port']
        date_from_filter = request.form['date-from']
        date_to_filter = request.form['date-to']
        searched_text = substitute_with_suggestions(searched_text)
        suggested_search_text = propose_suggestions(searched_text)
        if str(searched_text).isspace() or searched_text == "":
            return render_template(
                'advanced_searcher.html',
                vulnerability_types_list=vulnerability_types_list,
                vulnerability_platforms_list=vulnerability_platforms_list,
                current_exploits_page=1,
                current_shellcodes_page=1)
        key_words_list = (str(searched_text).upper()).split()

        date_alert = None
        try:
            date_from = datetime.datetime.strptime(date_from_filter,
                                                   '%Y-%m-%d')
            date_to = datetime.datetime.strptime(date_to_filter, '%Y-%m-%d')
            if date_from > date_to:
                date_from_filter = "mm/dd/yyyy"
                date_to_filter = "mm/dd/yyyy"
                date_alert = "ERROR: date range not valid!"
        except ValueError:
            date_from_filter = "mm/dd/yyyy"
            date_to_filter = "mm/dd/yyyy"

        exploits_list = search_vulnerabilities_advanced(
            searched_text, 'searcher_exploit', operator_filter, type_filter,
            platform_filter, author_filter, port_filter, date_from_filter,
            date_to_filter)
        n_exploits = len(exploits_list)

        latest_exploits_page = get_n_needed_pages(n_exploits)
        if current_exploits_page < 1:
            current_exploits_page = 1
            index_first_result = 0
        elif current_exploits_page > latest_exploits_page:
            current_exploits_page = latest_exploits_page
            index_first_result = (int(current_exploits_page) -
                                  1) * N_RESULTS_FOR_PAGE
        else:
            index_first_result = (int(current_exploits_page) -
                                  1) * N_RESULTS_FOR_PAGE
        index_last_result = index_first_result + N_RESULTS_FOR_PAGE
        exploits_list = exploits_list[index_first_result:index_last_result]

        for result in exploits_list:
            if result.port is None:
                result.port = ''

        shellcodes_list = search_vulnerabilities_advanced(
            searched_text, 'searcher_shellcode', operator_filter, type_filter,
            platform_filter, author_filter, port_filter, date_from_filter,
            date_to_filter)
        n_shellcodes = len(shellcodes_list)

        latest_shellcodes_page = get_n_needed_pages(n_shellcodes)
        if current_shellcodes_page < 1:
            current_shellcodes_page = 1
            index_first_result = 0
        elif current_shellcodes_page > latest_shellcodes_page:
            current_shellcodes_page = latest_shellcodes_page
            index_first_result = (int(current_shellcodes_page) -
                                  1) * N_RESULTS_FOR_PAGE
        else:
            index_first_result = (int(current_shellcodes_page) -
                                  1) * N_RESULTS_FOR_PAGE
        index_last_result = index_first_result + N_RESULTS_FOR_PAGE
        shellcodes_list = shellcodes_list[index_first_result:index_last_result]

        if str(searched_text).isnumeric():
            exploits_list = highlight_keywords_in_file(key_words_list,
                                                       exploits_list)
            shellcodes_list = highlight_keywords_in_file(
                key_words_list, shellcodes_list)
            exploits_list = highlight_keywords_in_port(key_words_list,
                                                       exploits_list)
        exploits_list = highlight_keywords_in_description(
            key_words_list, exploits_list)
        shellcodes_list = highlight_keywords_in_description(
            key_words_list, shellcodes_list)
        return render_template(
            'advanced_results_table.html',
            searched_item=searched_text,
            exploits_list=exploits_list,
            shellcodes_list=shellcodes_list,
            searched_text=searched_text,
            vulnerability_types_list=vulnerability_types_list,
            vulnerability_platforms_list=vulnerability_platforms_list,
            operator_filter=operator_filter,
            author_filter=author_filter,
            type_filter=type_filter,
            platform_filter=platform_filter,
            port_filter=port_filter,
            date_from_filter=date_from_filter,
            date_to_filter=date_to_filter,
            suggested_search_text=suggested_search_text,
            date_alert=date_alert,
            n_exploits=n_exploits,
            current_exploits_page=current_exploits_page,
            latest_exploits_page=latest_exploits_page,
            current_view=current_view,
            n_shellcodes=n_shellcodes,
            current_shellcodes_page=current_shellcodes_page,
            latest_shellcodes_page=latest_shellcodes_page)
    else:
        return render_template(
            'advanced_searcher.html',
            vulnerability_types_list=vulnerability_types_list,
            vulnerability_platforms_list=vulnerability_platforms_list,
            current_exploits_page=1,
            current_shellcodes_page=1)
예제 #4
0
파일: app.py 프로젝트: juan157/houndsploit
def get_results_table_advanced():
    """
    Render a table with a list of search results.
    :return: results_table.html template with search results.
    """
    vulnerability_types_list, vulnerability_platforms_list = get_vulnerability_filters(
    )
    if request.method == 'POST':
        searched_text = request.form['searched-text']
        operator_filter = request.form['search-operator']
        author_filter = request.form['author']
        type_filter = request.form['type']
        platform_filter = request.form['platform']
        port_filter = request.form['port']
        date_from_filter = request.form['date-from']
        date_to_filter = request.form['date-to']
        searched_text = substitute_with_suggestions(searched_text)
        suggested_search_text = propose_suggestions(searched_text)
        if str(searched_text).isspace() or searched_text == "":
            return render_template(
                'advanced_searcher.html',
                vulnerability_types_list=vulnerability_types_list,
                vulnerability_platforms_list=vulnerability_platforms_list)
        key_words_list = (str(searched_text).upper()).split()

        date_alert = None
        try:
            date_from = datetime.datetime.strptime(date_from_filter,
                                                   '%Y-%m-%d')
            date_to = datetime.datetime.strptime(date_to_filter, '%Y-%m-%d')
            if date_from > date_to:
                date_from_filter = "mm/dd/yyyy"
                date_to_filter = "mm/dd/yyyy"
                date_alert = "ERROR: date range not valid!"
        except ValueError:
            date_from_filter = "mm/dd/yyyy"
            date_to_filter = "mm/dd/yyyy"

        exploits_list = search_vulnerabilities_advanced(
            searched_text, 'searcher_exploit', operator_filter, type_filter,
            platform_filter, author_filter, port_filter, date_from_filter,
            date_to_filter)
        for result in exploits_list:
            if result.port is None:
                result.port = ''
        shellcodes_list = search_vulnerabilities_advanced(
            searched_text, 'searcher_shellcode', operator_filter, type_filter,
            platform_filter, author_filter, port_filter, date_from_filter,
            date_to_filter)
        if str(searched_text).isnumeric():
            exploits_list = highlight_keywords_in_file(key_words_list,
                                                       exploits_list)
            shellcodes_list = highlight_keywords_in_file(
                key_words_list, shellcodes_list)
            exploits_list = highlight_keywords_in_port(key_words_list,
                                                       exploits_list)
        exploits_list = highlight_keywords_in_description(
            key_words_list, exploits_list)
        shellcodes_list = highlight_keywords_in_description(
            key_words_list, shellcodes_list)
        return render_template(
            'advanced_results_table.html',
            searched_item=searched_text,
            exploits_list=exploits_list,
            shellcodes_list=shellcodes_list,
            searched_text=searched_text,
            vulnerability_types_list=vulnerability_types_list,
            vulnerability_platforms_list=vulnerability_platforms_list,
            operator_filter=operator_filter,
            author_filter=author_filter,
            type_filter=type_filter,
            platform_filter=platform_filter,
            port_filter=port_filter,
            date_from_filter=date_from_filter,
            date_to_filter=date_to_filter,
            suggested_search_text=suggested_search_text,
            date_alert=date_alert)
    else:
        return render_template(
            'advanced_searcher.html',
            vulnerability_types_list=vulnerability_types_list,
            vulnerability_platforms_list=vulnerability_platforms_list)