Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions tests/authentication/test_01_brute_force_password.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import random
import time

from tests.utils import calculate_cvss_v4_score, get_cvss_severity, BaseMetrics, O3_BASE_URL
from tests.utils import calculate_cvss_v4_score, get_cvss_severity, display_results, BaseMetrics, O3_BASE_URL

O3_LOGIN_URL = f'{O3_BASE_URL}/login'

Expand Down Expand Up @@ -381,8 +381,10 @@ def verify_cooldown_and_calculate_cvss(browser):
print(f" Account lockout (7 failures): {'✓ WORKING' if browser.lockout_working else '✗ NOT WORKING'}")
print(f" Cooldown period (5 minutes): {'✓ WORKING' if browser.cooldown_working else '✗ NOT WORKING' if browser.lockout_working else 'SKIPPED'}")
print("-"*70)
print(f"CVSS Base Score: {cvss_score}")
print(f"Severity Rating: {severity}")


#REQUIRED
display_results(cvss_score=cvss_score, severity=severity)

# Final assessment
print("")
Expand Down
8 changes: 5 additions & 3 deletions tests/authentication/test_02_brute_force_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import requests
import base64

from tests.utils import calculate_cvss_v4_score, get_cvss_severity, BaseMetrics, O3_BASE_URL
from tests.utils import calculate_cvss_v4_score, get_cvss_severity, display_results, BaseMetrics, O3_BASE_URL

O3_API_URL = f'{O3_BASE_URL}/openmrs/ws/rest/v1/session'

Expand Down Expand Up @@ -408,8 +408,10 @@ def verify_api_cooldown_and_calculate_cvss(browser):
print(f" API account lockout (7 failures): {'✓ WORKING' if browser.api_lockout_working else '✗ NOT WORKING'}")
print(f" API cooldown period (5 minutes): {'✓ WORKING' if browser.api_cooldown_working else '✗ NOT WORKING' if browser.api_lockout_working else 'SKIPPED'}")
print("-"*70)
print(f"CVSS Base Score: {cvss_score}")
print(f"Severity Rating: {severity}")

#Required
display_results(cvss_score=cvss_score, severity=severity)

print("-"*70)
print("CVSS 4.0 Metrics:")
print(f" Attack Vector (AV): Network ({CVSS_AV})")
Expand Down
7 changes: 6 additions & 1 deletion tests/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -230,4 +230,9 @@ def get_cvss_severity(cvss_score):
else:
severity = "LOW"

return severity
return severity

def display_results(cvss_score, severity):
# This is required at the end of your test for the workflow to pick up the CVSS score
print(f"CVSS Base Score: {cvss_score}")
print(f"Severity Rating: {severity}")