{% extends "base.html" %} {% block content %} {{ block.super }} {% load event_tags %} {% load display_tags %} {% load humanize %} {% load get_endpoint_status %} {% load get_note_status %} {% load get_notetype_availability %} {% if product_type %}

= {{ product_type }} =

{% elif product %}

= {{ product }} {% if endpoints %} - Endpoints {% endif %}=

{% elif engagement %}

= {{ engagement.product.name }}: {{ engagement }} =

{% elif test %}

= {{ test.engagement.product.name }}: {{ test.engagement }}, {{ test }} =

{% elif endpoint %}

= Endpoint Report =

{% if host_view %}

= {{ endpoint.host }} =

{% else %}

= {{ endpoint }} =

{% endif %} {% endif %} Generated By {{ user.get_full_name }} <{{ request.user.email }}>
Generated On {% now "SHORT_DATE_FORMAT" %}
{% if include_table_of_contents%}

Table of Contents for {{ product.name }}

{% endif %} {% if include_executive_summary and not endpoint %}

== Executive Summary ==

{% if product_type %} {% for prod in product_type.prod_type.all %}

=== {{ prod.name }} ===


{% if prod.engagement_set.all %} {% for eng in prod.engagement_set.all %} {% if eng.name and eng.name|length > 0 %} The {{ eng.name }} {% else %} An {% endif %} engagement ran from {{ eng.target_start|date:"SHORT_DATE_FORMAT" }} {% if eng.target_end %} to {{ eng.target_end|date:"SHORT_DATE_FORMAT" }}. {% else %} and is ongoing. {% endif %} {% if eng.test_set %}

The engagement also included the following tests which may be reported here:

{% for t in eng.test_set.all %} * {{ t }} ({{ t.environment.name|default:"unknown" }}): {{ t.target_start|date:"SHORT_DATE_FORMAT" }}
{% endfor %} {% endif %} {% if eng.test_strategy %}
The test strategy for this engagement can be viewed at {{ eng.test_strategy }}

{% else %}
{% endif %} {% endfor %} {% else %} No engagements found for {{ prod.name }}

{% endif %} {% endfor %} A total of {{ findings|length|apnumber }} finding{{ findings|length|pluralize }} of varying severity are represented in this report. {% endif %} {% if product %} {% if product.engagement_set.all %} {% for eng in product.engagement_set.all %}
{% if eng.name and eng.name|length > 0 %} The {{ eng.name }} {% else %} An {% endif %} engagement ran from {{ eng.target_start|date:"SHORT_DATE_FORMAT" }} {% if eng.target_end %} to {{ eng.target_end|date:"SHORT_DATE_FORMAT" }}. {% else %} and is ongoing. {% endif %} {% if eng.test_set %}

The engagement also included the following tests which may be reported here:

{% for t in eng.test_set.all %} * {{ t }} ({{ t.environment.name|default:"unknown" }}): {{ t.target_start|date:"SHORT_DATE_FORMAT" }}
{% endfor %} {% endif %} {% if eng.test_strategy %}
The test strategy for this engagement can be viewed at {{ eng.test_strategy }}

{% else %}
{% endif %} {% endfor %} {% else %} No engagements found for {{ product.name }}

{% endif %} A total of {{ findings|length|apnumber }} finding{{ findings|length|pluralize }} of varying severity are represented in this report. {% endif %} {% if engagement %}
{% if engagement.name and engagement.name|length > 0 %} The {{ engagement.name }} {% else %} An {% endif %} engagement ran from {{ engagement.target_start|date:"SHORT_DATE_FORMAT" }} {% if engagement.target_end %} to {{ engagement.target_end|date:"SHORT_DATE_FORMAT" }}. {% else %} and is ongoing. {% endif %} {% if engagement.test_set %}

The engagement also included the following tests which may be reported here:

{% for t in engagement.test_set.all %} * {{ t }} ({{ t.environment.name|default:"unknown" }}): {{ t.target_start|date:"SHORT_DATE_FORMAT" }}
{% endfor %} {% endif %} {% if engagement.test_strategy %}
The test strategy for this engagement can be viewed at {{ engagement.test_strategy }}

{% else %}
{% endif %} A total of {{ findings|length|apnumber }} finding{{ findings|length|pluralize }} of varying severity are represented in this report. {% endif %} {% if test %}
A {{ test }} was conducted in the {{ test.environment.name }} environment {% if test.target_end %} from {{ test.target_start|date:"SHORT_DATE_FORMAT" }} to {{ test.target_end|date:"SHORT_DATE_FORMAT" }} {% else %} on {{ test.target_start|date:"SHORT_DATE_FORMAT" }} {% endif %} which yielded a total of {{ findings|length|apnumber }} finding{{ findings|length|pluralize }} of varying severity.

The test was part of {% if test.engagement.name %} the {{ test.engagement.name }} {% else %} an {% endif %} engagement which ran from {{ test.engagement.target_start|date:"SHORT_DATE_FORMAT" }} {% if test.engagement.target_end %} to {{ test.engagement.target_end|date:"SHORT_DATE_FORMAT" }}. {% else %} and is ongoing. {% endif %}

{% if test.engagement.test_set %} The engagement also included the following tests which are not reported here:

{% for t in test.engagement.test_set.all %} {% if test.id != t.id %} * {{ t }} ({{ t.environment.name|default:"unknown" }}): {{ t.target_start|date:"SHORT_DATE_FORMAT" }}
{% endif %} {% endfor %} {% endif %} {% endif %}

{% endif %} {% if include_disclaimer%}

== Disclaimer ==

{{ disclaimer }}
{% endif %}
{% if test %} {% with notes=test.notes.all|get_public_notes %}

== Test Notes ==

{% if notes %} {% for note in notes reversed %} {{ note.author }} - {{ note.date }} - {{ note }} +
{% endfor %} {% endif %}


{% endwith %} {% endif %} {% if engagement.test_set.all %}

== Test Notes ==

{% for test in engagement.test_set.all %} {% with notes=test.notes.all|get_public_notes %} {% if notes %} {% for note in notes reversed %} {{ note.author }} - {{ note.date }} - {{ note }} +
{% endfor %} {% endif %} {% endwith %} {% endfor %}


{% endif %} {% if engagement.risk_acceptance.count %}

== ?Risk Accepted Findings ==

|===
|Name |Date |Severity
{% for risk in engagement.risk_acceptance.all %} {% for finding in risk.accepted_findings.all %} |{{ finding.title }}
|{{ finding.date }}
|{{ finding.severity }}
{% endfor %} {% endfor %} |===

{% endif %} {% if findings %}

== Findings ==


{% endif %} {% for find in findings %}

==== Finding {{ find.id }}: {{ find.title | nice_title }} {% if find.mitigated %} Mitigated on: {{ find.mitigated }} {% endif %} {% if find.tags %} [ {% for tag in find.tags.all %} {{ tag }} {% endfor %} ] {% endif %} ====


==== Product: ====
{{ find.test.engagement.product.name }}


==== Status: ====
{{ find.status }}


==== CVSS v3: ====
{{ find.cvssv3 }}


==== Severity: ====
{{ find.severity }} ({{ find.numerical_severity }})

==== Description / Exploit: ====
{{ find.description|linebreaksbr }}


==== Impact: ====
{{ find.impact|linebreaksasciidocbr }}


{% with endpoints=find|get_vulnerable_endpoints %} {% if endpoints %}

==== Vulnerable Endpoints: ====
{% for endpoint in endpoints %} {{ endpoint }} +
{% endfor %}


{% endif %} {% endwith %} {% with endpoints=find|get_mitigated_endpoints %} {% if endpoints %}

==== Remediated Endpoints: ====
{% for endpoint in endpoints %} {{ endpoint }} +
{% endfor %}


{% endif %} {% endwith %}

==== Suggested Mitigation: ====
{{ find.mitigation|linebreaksasciidocbr }}


==== Further References: ====
{{ find.references|linebreaksasciidocbr }}


{% if include_finding_images %}

==== Finding Images: ====
{% include "dojo/snippets/file_images.html" with size='small' obj=find format="AsciiDoc" %}


{% else %}
{% endif %} {% if include_finding_notes %} {% with notes=find.notes.all|get_public_notes %} {% if notes.count > 0 %}

==== Finding Notes: ====
{% if notes|get_notetype_notes_count > 0 %} {% for note in notes reversed %} {{ note.author }} - {{ note.date }} - {% if note.note_type != None %}{{ note.note_type }}{% endif %} - {{ note }} +
{% endfor %} {% else %} {% for note in notes reversed %} {{ note.author }} - {{ note.date }} - {{ note }} +
{% endfor %} {% endif %}


{% endif %} {% endwith %} {% endif %} {% endfor %} {% if mitigated_findings %}

== Mitigated Findings ==


{% for find in mitigated_findings %}

=== Finding {{ find.id }}: {{ find.title | nice_title }} {% if find.mitigated %} Mitigated on: {{ find.mitigated }} {% endif %}===


==== Severity: ====
{{ find.severity }} ({{ find.numerical_severity }})


==== Description / Exploit: ====
{{ find.description|linebreaksasciidocbr }}

{% if include_finding_images %}

==== Finding Images: ====
{% include "dojo/snippets/file_images.html" with size='small' obj=find format="AsciiDoc" %}


{% else %}
{% endif %} {% if include_finding_notes %} {% with notes=find.notes.all|get_public_notes %} {% if notes.count > 0 %}

==== Finding Notes: ====
{% if notes|get_notetype_notes_count > 0 %} {% for note in notes reversed %} {{ note.author }} - {{ note.date }} - {% if note.note_type != None %}{{ note.note_type }}{% endif %} - {{ note }} +
{% endfor %} {% else %} {% for note in notes reversed %} {{ note.author }} - {{ note.date }} - {{ note }} +
{% endfor %} {% endif %}


{% endif %} {% endwith %} {% endif %} {% endfor %} {% endif %} {% if endpoints %}

== Endpoints ==

{% for endpoint in endpoints %}

=== {{ endpoint }} ===

{% for find in endpoint.active_findings %}
==== Finding {{ find.id }}: {{ find.title | nice_title }} {% if find.mitigated %} Mitigated on: {{ find.mitigated }} {% endif %}====

==== Product: ====
{{ find.test.engagement.product.name }}


==== Status: ====
{{ find.status }}


==== Severity: ====
{{ find.severity }} ({{ find.numerical_severity }})

==== Description / Exploit: ====
{{ find.description|linebreaksbr }}


==== Impact: ====
{{ find.impact|linebreaksasciidocbr }}


{% with endpoints=find|get_vulnerable_endpoints %} {% if endpoints %}

==== Vulnerable Endpoints: ====
{% for endpoint in endpoints %} {{ endpoint }} +
{% endfor %}


{% endif %} {% endwith %} {% with endpoints=find|get_mitigated_endpoints %} {% if endpoints %}

==== Remediated Endpoints: ====
{% for endpoint in endpoints %} {{ endpoint }} +
{% endfor %}


{% endif %} {% endwith %}

==== Suggested Mitigation: ====
{{ find.mitigation|linebreaksasciidocbr }}


==== Further References: ====
{{ find.references|linebreaksasciidocbr }}


{% if include_finding_images %}

==== Finding Images: ====
{% include "dojo/snippets/file_images.html" with size='small' obj=find format="AsciiDoc" %}


{% else %}
{% endif %}
{% if include_finding_notes %} {% with notes=find.notes.all|get_public_notes %} {% if notes.count > 0 %}

==== Finding Notes: ====
{% if notes|get_notetype_notes_count > 0 %} {% for note in notes reversed %} {{ note.author }} - {{ note.date }} - {% if note.note_type != None %}{{ note.note_type }}{% endif %} - {{ note }} +
{% endfor %} {% else %} {% for note in notes reversed %} {{ note.author }} - {{ note.date }} - {{ note|linebreaks }} +
{% endfor %} {% endif %}


{% endif %} {% endwith %} {% endif %} {% endfor %} {% endfor %} {% endif %} {% if include_table_of_contents %}
{% endif %} {% endblock %} {% block postscript %} {{ block.super }} {% endblock %}