53 Zeilen
1.7 KiB
Python
53 Zeilen
1.7 KiB
Python
#!/usr/bin/env python3
|
|
import requests
|
|
import urllib3
|
|
|
|
# Disable SSL warnings for self-signed certificate
|
|
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
|
|
|
# Test configuration
|
|
base_url = "https://localhost:443"
|
|
admin_users = [
|
|
{"username": "rac00n", "password": "1248163264"},
|
|
{"username": "w@rh@mm3r", "password": "Warhammer123!"}
|
|
]
|
|
|
|
def test_login(username, password):
|
|
"""Test login functionality for admin user"""
|
|
session = requests.Session()
|
|
|
|
# Get login page
|
|
response = session.get(f"{base_url}/login", verify=False)
|
|
if response.status_code != 200:
|
|
return f"Failed to access login page: {response.status_code}"
|
|
|
|
# Attempt login
|
|
login_data = {
|
|
"username": username,
|
|
"password": password
|
|
}
|
|
|
|
response = session.post(f"{base_url}/login", data=login_data, verify=False, allow_redirects=False)
|
|
|
|
# Check if login was successful (redirect to dashboard)
|
|
if response.status_code == 302 and response.headers.get('Location') == '/':
|
|
# Try to access dashboard
|
|
dashboard_response = session.get(f"{base_url}/", verify=False)
|
|
if dashboard_response.status_code == 200 and username in dashboard_response.text:
|
|
return f"✓ Login successful for {username}"
|
|
else:
|
|
return f"✗ Login succeeded but dashboard access failed for {username}"
|
|
else:
|
|
return f"✗ Login failed for {username}"
|
|
|
|
# Test both admin users
|
|
print("Testing Admin Panel Login Functionality")
|
|
print("=" * 40)
|
|
|
|
for user in admin_users:
|
|
result = test_login(user["username"], user["password"])
|
|
print(result)
|
|
|
|
print("\nTesting invalid credentials...")
|
|
result = test_login("invalid_user", "wrong_password")
|
|
print(result) |