Gravity Forms में CVE-2026-84434 के लिए Python 3 PoC स्कैनर और एक्सप्लॉइट।
| |
|---|
| प्लगइन | gravityforms |
| प्रभावित | ≤ 3.1.0.4 |
| में ठीक किया गया | 3.1.0.5+ (विक्रेता सुरक्षा रिलीज़ 3.1.1) |
| CVSS | 9.8 (गंभीर) |
| प्रमाणीकरण | अनधिकृत |
| CWE | CWE-434 — अनिर्बंधित अपलोड |
| श्रेय | 0xd4rk5id3 — EnvoraSec (Wordfence) |
सारांश
छिपे हुए File Upload फ़ील्ड सत्यापन पाइपलाइन में एक्सटेंशन सत्यापन को छोड़ देते हैं, जबकि पर्सिस्टेंस पथ अभी भी समतुल्य जाँचों के बिना upload_file() को कॉल कर सकता है। एक अनधिकृत हमलावर एक सार्वजनिक फ़ॉर्म पर POST कर सकता है जिसमें Visibility → Hidden के साथ एक File Upload फ़ील्ड शामिल है।
फ़ाइलें wp-content/uploads/gravity_forms/ के अंतर्गत संग्रहीत की जाती हैं। Gravity Forms आमतौर पर PHP निष्पादन को अवरुद्ध करने के लिए .htaccess नियम जोड़ता है; RCE सर्वर कॉन्फ़िगरेशन पर निर्भर करता है (nginx, वैकल्पिक docroot, आदि)।
हमला प्रवाह
- Gravity Forms और संस्करण ≤ 3.1.0.4 का पता लगाएँ
- सार्वजनिक पृष्ठों को
gform_wrapper और एक छिपे हुए fileupload फ़ील्ड (input_{form}_{field}) के लिए क्रॉल करें
- आवश्यक दृश्यमान फ़ील्ड को प्लेसहोल्डर से भरें
- Multipart POST (
gform_submit, is_submit_{id}, छिपे हुए इनपुट पर फ़ाइल)
- पुष्टिकरण संदेश / प्रविष्टि संकेत / वैकल्पिक मार्कर फ़ेच के माध्यम से पुष्टि करें
आवश्यकताएँ
- Python 3.9+
pip install -r requirements.txt
उपयोग
pip install -r requirements.txt
# Check single target
python poc.py -u https://target.example --mode check
# Mass check
python poc.py --list targets.example.txt --mode check --threads 30 --quiet
# Exploit (built-in benign .txt probe unless --payload-file is set)
python poc.py -u https://target.example --mode exploit \
--form-id 3 --page-url /contact/ --file-field 7
# Custom upload file (your own probe — not included in this repo)
python poc.py -u https://target.example --mode exploit \
--form-id 3 --page-url /contact/ --file-field 7 \
--payload-file probe.txt
# Mass exploit from check output
python poc.py --list candidates.jsonl --mode exploit --threads 10 --quiet
CLI विकल्प
आउटपुट (मास चेक)
| फ़ाइल | सामग्री |
|---|
cve_2026_84434_results.jsonl |
सामान्य status मान (चेक)
सीमाएँ
- चेक मोड केवल सार्वजनिक HTML में रेंडर किए गए छिपे हुए अपलोड फ़ील्ड देखता है; केवल-व्यवस्थापक छिपे हुए फ़ील्ड दूर से खोजे नहीं जा सकते।
- FOFA-शैली सूचियों में कई पैच किए गए साइटें या छिपे हुए अपलोड के बिना फ़ॉर्म होते हैं — कम उम्मीदवार दर की अपेक्षा करें।
- डिफ़ॉल्ट एक्सप्लॉइट एक हानिरहित टेक्स्ट मार्कर अपलोड करता है, वेबशेल नहीं।
रिपॉज़िटरी लेआउट
.
├── poc.py
├── requirements.txt
├── targets.example.txt
├── README.md
├── LICENSE
└── .gitignore
स्थानीय स्कैन सूचियाँ और आर्टिफ़ैक्ट (list.txt, *.jsonl, कस्टम पेलोड) .gitignore में हैं और इन्हें कमिट नहीं किया जाना चाहिए।
कानूनी
केवल अधिकृत सुरक्षा परीक्षण के लिए। लागू कानूनों और कार्यक्रम नियमों के अनुपालन की जिम्मेदारी आपकी है।