Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cotonti-commentswidget-poc — Cotonti CommentsWidget PHP ऑब्जेक्ट इंजेक्शन भेद्यता (CAN-2026-2035973 / CVE-2026-71294) के लिए सुरक्षित स्थानीय प्रूफ ऑफ कॉन्सेप्ट। | Kitploit
उपकरण/GitHubGitHub/harshrajsinghania/cotonti-commentswidget-poc
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणलर्निंग और शिक्षा
GitHubharshrajsinghania/cotonti-commentswidget-poc

cotonti-commentswidget-poc

Cotonti CommentsWidget PHP ऑब्जेक्ट इंजेक्शन भेद्यता (CAN-2026-2035973 / CVE-2026-71294) के लिए सुरक्षित स्थानीय प्रूफ ऑफ कॉन्सेप्ट।

रिपॉजिटरी देखें
14घं 7मि पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Cotonti CommentsWidget PHP ऑब्जेक्ट इंजेक्शन PoC

Cotonti के CommentsWidget कार्यान्वयन में पहचाने गए PHP ऑब्जेक्ट इंजेक्शन मुद्दे के लिए सुरक्षित स्थानीय प्रमाण-अवधारण (proof of concept)।

भेद्यता

  • प्रोजेक्ट: Cotonti
  • प्रभावित घटक: plugins/comments/inc/CommentsWidget.php
  • CWE: CWE-502 — अविश्वसनीय डेटा का डीसेरिएलाइज़ेशन
  • CVE/उम्मीदवार: CAN-2026-2035973 / CVE-2026-71294
  • शोधकर्ता: Harsh Raj Singhania

भेद्य कोड पथ ci GET पैरामीटर को स्वीकार करता है और हमलावर-नियंत्रित डेटा को base64_decode() के माध्यम से PHP के unserialize() में पास करता है, बिना यह प्रतिबंधित किए कि कौन सी क्लासेस इंस्टैंशिएट की जा सकती हैं।

संकल्पनात्मक रूप से, भेद्य ऑपरेशन यह है:

root@kitploit:~
$ci = @unserialize(base64_decode($ci));

जब एक सीरिएलाइज़्ड ऑब्जेक्ट प्रदान किया जाता है, तो PHP हमलावर-नियंत्रित क्लास को इंस्टैंशिएट कर सकता है और __wakeup() जैसी मैजिक मेथड्स को इनवोक कर सकता है। एक बड़े एप्लिकेशन में यह तब खतरनाक हो सकता है जब उपयुक्त गैजेट क्लासेस उपलब्ध हों।

प्रस्तुत फिक्स डीसेरिएलाइज़ेशन को इसमें बदलता है:

root@kitploit:~
$ci = @unserialize(base64_decode($ci), ['allowed_classes' => false]);

और उपयोग से पहले यह सत्यापित करता है कि परिणामी मान में अपेक्षित array संरचना है।

यह PoC क्या प्रदर्शित करता है

poc.php तीन स्थानीय परीक्षण करता है:

  1. भेद्य व्यवहार — अप्रतिबंधित unserialize() DangerousGadget को इंस्टैंशिएट करता है और उसकी __wakeup() मेथड को ट्रिगर करता है।
  2. फिक्स्ड व्यवहार — allowed_classes => false गैजेट क्लास को इंस्टैंशिएट होने से रोकता है और इसलिए __wakeup() साइड इफेक्ट को रोकता है।
  3. संरचनात्मक सत्यापन — अप्रत्याशित आकार वाला एक सीरिएलाइज़्ड मान फिक्स द्वारा उपयोग किए जाने वाले सत्यापन लॉजिक द्वारा अस्वीकार कर दिया जाता है।

PoC /tmp/pwned_by_cotonti_poc.txt का उपयोग केवल एक हानिरहित सेंटिनल के रूप में करता है जो दर्शाता है कि __wakeup() निष्पादित हुआ। यह ऑपरेटिंग-सिस्टम कमांड को निष्पादित नहीं करता। id && whoami स्ट्रिंग केवल गैजेट की command प्रॉपर्टी में एक प्लेसहोल्डर मान के रूप में मौजूद है।

आवश्यकताएँ

  • serialize() / unserialize() समर्थन वाला PHP CLI
  • एक स्थानीय परीक्षण वातावरण

किसी Cotonti इंस्टॉलेशन की आवश्यकता नहीं है क्योंकि भेद्य और फिक्स्ड डीसेरिएलाइज़ेशन व्यवहार सीधे पुनरुत्पादित किया जाता है।

PoC चलाना

रिपॉज़िटरी डायरेक्टरी से:

root@kitploit:~
php poc.php

अपेक्षित आउटपुट इसके समान है:

root@kitploit:~
[!] DangerousGadget::__wakeup() triggered
[TEST 1] VULNERABLE: __wakeup() executed during unrestricted unserialize().
[TEST 2] FIXED: object instantiation was blocked; no sentinel was created.
[TEST 3] FIXED: invalid serialized structure rejected by validation.

Summary:
- Vulnerable path allows a serialized attacker-controlled object to be instantiated and invokes __wakeup().
- Fixed path uses allowed_classes=false, preventing the gadget class from being instantiated.
- Structural validation rejects values that do not match the expected array shape.
- No real command execution is performed by this PoC; the command property is only a placeholder.

स्क्रिप्ट बाहर निकलने से पहले अपनी सेंटिनल फ़ाइल को हटा देती है।

उपचार

हमलावर-नियंत्रित डेटा को अप्रतिबंधित PHP unserialize() के साथ डीसेरिएलाइज़ न करें।

इस कोड पथ के लिए, प्रदर्शित शमन उपाय क्लास इंस्टैंशिएशन को अक्षम करना है:

root@kitploit:~
unserialize($data, ['allowed_classes' => false]);

डीसेरिएलाइज़्ड मान को उसकी सामग्री का उपयोग करने से पहले एप्लिकेशन द्वारा अपेक्षित सटीक संरचना के विरुद्ध भी सत्यापित किया जाना चाहिए।

संदर्भ

  • अपस्ट्रीम सुरक्षा मुद्दा: https://github.com/Cotonti/Cotonti/issues/1888
  • अपस्ट्रीम फिक्स पुल रिक्वेस्ट: https://github.com/Cotonti/Cotonti/pull/1889
  • Cotonti प्रोजेक्ट: https://github.com/Cotonti/Cotonti

जिम्मेदार उपयोग

यह रिपॉज़िटरी सुरक्षा अनुसंधान, सत्यापन और रक्षात्मक परीक्षण के लिए है। PoC को केवल उन वातावरणों में चलाएँ जिनके आप स्वामी हैं या जिनका परीक्षण करने के लिए आपको स्पष्ट रूप से अधिकृत किया गया है। अनुमति के बिना सिस्टम को लक्षित करने के लिए इसका उपयोग न करें।

श्रेय

Harsh Raj Singhania — भेद्यता अनुसंधान, प्रमाण-अवधारण, और प्रकटीकरण।

टूल डाउनलोड करें