
यह रिपॉजिटरी **CVE-2025-25257** के लिए production-ready detection engineering सामग्री प्रदान करता है, जो Fortinet FortiWeb Fabric Connector संस्करण 7.0 से 7.6.x में एक pre-authentication SQL Injection भेद्यता है। सफल शोषण से बिना किसी पूर्व प्रमाणीकरण के Remote Code Execution हो सकता है।
यह रिपॉजिटरी CVE-2025-25257 के लिए प्रोडक्शन-रेडी डिटेक्शन इंजीनियरिंग सामग्री प्रदान करती है, जो Fortinet FortiWeb Fabric Connector संस्करण 7.0 से 7.6.x में एक प्री-ऑथेंटिकेशन SQL इंजेक्शन भेद्यता है। सफल शोषण से बिना किसी पूर्व प्रमाणीकरण के रिमोट कोड एक्ज़ीक्यूशन (Remote Code Execution) हो सकता है।
यह सामग्री केवल रक्षात्मक उपयोग के लिए है। इसे सिक्योरिटी ऑपरेशन्स सेंटर (SOC) टीमों, डिटेक्शन इंजीनियरों और थ्रेट हंटर्स के लिए तैयार किया गया है। इसमें कोई वेपनाइज़्ड एक्सप्लॉइट कोड शामिल नहीं है।
CVE-2025-25257 FortiWeb में Fabric Connector API एंडपॉइंट /api/fabric/device/status को प्रभावित करती है। Authorization हेडर को बिना सैनिटाइज़ेशन के सीधे SQL क्वेरी में पास किया जाता है। एक अनप्रमाणित हमलावर Bearer टोकन मान में SQL सिंटैक्स इंजेक्ट करके अंतर्निहित क्वेरी में हेरफेर कर सकता है, प्रमाणीकरण को बायपास कर सकता है, और कुछ कॉन्फ़िगरेशन में SQL-आधारित कमांड स्टैकिंग या फ़ाइल राइट प्रिमिटिव्स के माध्यम से रिमोट कोड एक्ज़ीक्यूशन प्राप्त कर सकता है।
यह भेद्यता बिना किसी क्रेडेंशियल के नेटवर्क पर शोषण योग्य है। यदि लॉग संग्रह मौजूद है, तो यह HTTP एक्सेस लॉग में आसानी से पता लगाने योग्य है।
हमलावर Fabric Connector API को एक क्राफ्टेड HTTP GET अनुरोध भेजता है। Authorization हेडर में Bearer टोकन में इंजेक्ट किया गया SQL होता है। उदाहरण पैटर्न:
Authorization: Bearer aaa' OR '1'='1
यह बैकएंड SQL क्वेरी को सत्य (true) के रूप में मूल्यांकित करने का कारण बनता है, जिससे टोकन सत्यापन बायपास हो जाता है। आगे के शोषण में डेटा पढ़ने के लिए UNION-आधारित इंजेक्शन या डेटाबेस कॉन्फ़िगरेशन और विशेषाधिकारों के आधार पर फ़ाइलें लिखने या OS कमांड निष्पादित करने के लिए स्टैक्ड क्वेरीज़ शामिल हो सकती हैं।
निम्नलिखित केवल डिटेक्शन नियम सत्यापन उद्देश्यों के लिए दस्तावेज़ित किया गया है।
GET /api/fabric/device/status HTTP/1.1
Host: <fortiweb-ip>
Authorization: Bearer aaa' OR '1'='1
इस रिपॉजिटरी में डिटेक्शन नियम HTTP लॉग और नेटवर्क ट्रैफ़िक में इस और इसी तरह के इंजेक्शन पैटर्न की पहचान करने के लिए ट्यून किए गए हैं।
YARA नियम rules/yara/ में स्थित हैं।
cve_2025_25257_http.yar - HTTP लॉग फ़ाइलों और कैप्चर किए गए ट्रैफ़िक में शोषण पैटर्न का पता लगाता हैcve_2025_25257_webshell.yar - शोषण के बाद गिराए गए संभावित वेब शेल का पता लगाता हैcve_2025_25257_payload.yar - डिस्क पर कच्चे पेलोड आर्टिफैक्ट्स का पता लगाता हैHTTP एक्सेस लॉग स्कैन करें:
yara -r rules/yara/cve_2025_25257_http.yar /var/log/fortiweb/
गिराई गई फ़ाइलों के लिए वेब रूट स्कैन करें:
yara -r rules/yara/cve_2025_25257_webshell.yar /var/www/html/
कैप्चर किया गया PCAP स्कैन करें:
yara rules/yara/cve_2025_25257_http.yar capture.pcap
किसी निर्देशिका के विरुद्ध सभी नियम पुनरावर्ती रूप से चलाएँ:
yara -r rules/yara/ /path/to/scan/
KQL क्वेरीज़ rules/kql/ में स्थित हैं। प्रत्येक फ़ाइल एक विशिष्ट डिटेक्शन श्रेणी को लक्षित करती है।
Sigma नियम rules/sigma/ में हैं। इन्हें sigma-cli या pySigma का उपयोग करके किसी भी SIEM प्रारूप में परिवर्तित किया जा सकता है।
Splunk SPL में परिवर्तित करें:
sigma convert -t splunk rules/sigma/cve_2025_25257_sqli.yml
Elastic EQL में परिवर्तित करें:
sigma convert -t elasticsearch rules/sigma/cve_2025_25257_sqli.yml
FortiWeb उपकरण CLI पर:
get system status | grep Version
प्रभावित: 7.0.x से 7.6.0
पैच किया गया: 7.6.1 और बाद के संस्करण
कमजोर एंडपॉइंट का अनुकरण करने वाला एक बुनियादी Nginx रिवर्स प्रॉक्सी डिटेक्शन परीक्षण के लिए उपयोग किया जा सकता है। लॉग-आधारित डिटेक्शन सत्यापन के लिए किसी वास्तविक FortiWeb इमेज की आवश्यकता नहीं है।
# Pull the test lab container
docker run -d \
--name fortiweb-sim \
-p 8443:443 \
-v $(pwd)/src/lab/nginx.conf:/etc/nginx/nginx.conf:ro \
nginx:alpine
# Send a simulated exploitation request
curl -k -H "Authorization: Bearer aaa' OR '1'='1" \
https://localhost:8443/api/fabric/device/status
यह D-01 में डिटेक्शन पैटर्न से मेल खाती एक एक्सेस लॉग प्रविष्टि उत्पन्न करेगा।
परीक्षण अनुरोध भेजने के बाद, अनुकरणित लॉग आउटपुट जाँचें:
docker logs fortiweb-sim | grep "fabric/device/status"
अपेक्षित लॉग प्रविष्टि पैटर्न:
"GET /api/fabric/device/status HTTP/1.1" 401 - "Bearer aaa' OR '1'='1"
लॉग के विरुद्ध YARA नियम चलाएँ:
yara rules/yara/cve_2025_25257_http.yar /var/log/nginx/access.log
अपेक्षित आउटपुट:
CVE_2025_25257_SQLi_AuthHeader /var/log/nginx/access.log
cve-2025-25257-detection/
├── README.md
├── LICENSE
├── .gitignore
├── rules/
│ ├── yara/
│ │ ├── cve_2025_25257_http.yar
│ │ ├── cve_2025_25257_webshell.yar
│ │ └── cve_2025_25257_payload.yar
│ ├── kql/
│ │ ├── 01_web_exploitation.kql
│ │ ├── 02_process_spawn.kql
│ │ ├── 03_command_execution.kql
│ │ ├── 04_file_creation.kql
│ │ ├── 05_persistence.kql
│ │ ├── 06_config_modification.kql
│ │ └── 07_threat_hunting.kql
│ ├── sigma/
│ │ ├── cve_2025_25257_sqli.yml
│ │ └── cve_2025_25257_process_spawn.yml
│ └── splunk/
│ ├── web_exploitation.spl
│ └── process_anomaly.spl
├── docs/
│ ├── iocs.md
│ ├── mitre_attack.md
│ └── false_positive_analysis.md
├── src/
│ ├── poc.py
│ └── lab/
│ └── nginx.conf
└── sysmon/
└── sysmon_config_snippet.xml
यह रिपॉजिटरी केवल रक्षात्मक और शैक्षिक उद्देश्यों के लिए प्रदान की गई है। सभी डिटेक्शन सामग्री सुरक्षा टीमों को शोषण प्रयासों की पहचान करने और उनका जवाब देने में मदद करने के लिए है। इस रिपॉजिटरी की किसी भी सामग्री का उपयोग उन सिस्टमों के विरुद्ध न करें जिनके स्वामी आप नहीं हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति नहीं है।
यह प्रोजेक्ट MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है। विवरण के लिए LICENSE देखें।
| फ़ील्ड | विवरण |
|---|
| CVE | CVE-2025-25257 |
| EDB-ID | 52473 |
| उत्पाद | Fortinet FortiWeb |
| प्रभावित संस्करण | 7.0.x से 7.6.x |
| भेद्यता प्रकार | RCE की ओर ले जाने वाला प्री-ऑथेंटिकेशन SQL इंजेक्शन |
| हमला वेक्टर | HTTP API एंडपॉइंट (अनप्रमाणित) |
| आवश्यक प्रमाणीकरण | कोई नहीं |
| CVSS स्कोर | 9.8 (गंभीर) |
| पैच उपलब्ध | हाँ, 7.6.1 या बाद के संस्करण में अपग्रेड करें |
| प्रकाशित | 2026-02-04 |
| शोधकर्ता | Milad Karimi (Ex3ptionaL) |
| आईडी | श्रेणी | डिटेक्शन विधि | स्रोत | कवरेज स्तर |
|---|
| D-01 | वेब अनुरोध शोषण | Authorization हेडर में SQLi पैटर्न | वेब/प्रॉक्सी लॉग, WAF | उच्च |
| D-02 | वेब अनुरोध शोषण | बिना वैध टोकन के /api/fabric/device/status पर अनुरोध | वेब लॉग | उच्च |
| D-03 | प्रोसेस एक्ज़ीक्यूशन विसंगति | वेब सर्वर प्रोसेस द्वारा स्पॉन की गई शेल प्रोसेस | EDR / Sysmon | उच्च |
| D-04 | प्रोसेस एक्ज़ीक्यूशन विसंगति | nginx या httpd का sh, bash, python चाइल्ड प्रोसेस | EDR | उच्च |
| D-05 | संदिग्ध फ़ाइल निर्माण | FortiWeb वेब रूट पर लिखा गया वेब शेल | EDR / फ़ाइल अखंडता | मध्यम |
| D-06 | संदिग्ध फ़ाइल निर्माण | वेब निर्देशिकाओं में अप्रत्याशित .php, .jsp, .py फ़ाइलें | फ़ाइल मॉनिटरिंग | मध्यम |
| D-07 | पर्सिस्टेंस तंत्र | शोषण के बाद क्रॉन जॉब संशोधन | EDR / Auditd | मध्यम |
| D-08 | पर्सिस्टेंस तंत्र | SQLi के बाद API के माध्यम से नया एडमिन खाता निर्माण | API / प्रमाणीकरण लॉग | उच्च |
| D-09 | कंटेनर गतिविधि | FortiWeb कंटेनर नेमस्पेस में असामान्य प्रोसेस | कंटेनर रनटाइम | मध्यम |
| D-10 | थ्रेट हंटिंग | Fabric Connector API कॉल दर में बेसलाइन विचलन | SIEM / एनालिटिक्स | मध्यम |
| D-11 | थ्रेट हंटिंग | /api/fabric/ पर बार-बार 200/403 पैटर्न बनाने वाले स्रोत IP | वेब लॉग | उच्च |
| D-12 | कॉन्फ़िगरेशन छेड़छाड़ | वेब अनुरोध के बाद FortiWeb कॉन्फ़िग फ़ाइलों में परिवर्तन | फ़ाइल अखंडता / EDR | उच्च |
| D-13 | कॉन्फ़िगरेशन छेड़छाड़ | उपकरण पर /data/ या /etc/ में अप्रत्याशित लेखन | Auditd / EDR | मध्यम |
| फ़ाइल | विवरण |
|---|
01_web_exploitation.kql | Authorization हेडर में SQL इंजेक्शन पैटर्न |
02_process_spawn.kql | वेब सर्वर से असामान्य चाइल्ड प्रोसेस |
03_command_execution.kql | संदिग्ध कमांड एक्ज़ीक्यूशन श्रृंखलाएँ |
04_file_creation.kql | वेब निर्देशिकाओं में अप्रत्याशित फ़ाइल लेखन |
05_persistence.kql | पर्सिस्टेंस तंत्र संकेतक |
06_config_modification.kql | कॉन्फ़िगरेशन फ़ाइल छेड़छाड़ |
07_threat_hunting.kql | उन्नत थ्रेट हंटिंग क्वेरी |