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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
SessionReaper-CVE-2025-54236 — PoC Magento Session Reaper - CVE-2025-54236 | Kitploit
उपकरण/GitHubGitHub/alexb616/sessionreaper-cve-2025-54236
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगरेड टीमिंगपेलोड डेवलपमेंट
GitHubalexb616/sessionreaper-cve-2025-54236

SessionReaper-CVE-2025-54236

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

सभी देखें →

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

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

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

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

PoC Magento Session Reaper - CVE-2025-54236

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

SessionReaper — CVE-2025-54236

CVE-2025-54236 ("SessionReaper") के लिए एकीकृत PoC — Magento 2 / Adobe Commerce में REST API में नेस्टेड deserialization के माध्यम से एक गंभीर बिना-प्रमाणीकरण वाला RCE।

  • CVSS: 9.1 (गंभीर)
  • मूल कारण: ServiceInputProcessor में अनुचित इनपुट सत्यापन (CWE-20); exploit primitive असुरक्षित deserialization (CWE-502) है
  • मूल शोधकर्ता: Daniel "Blaklis" Le Gall (HackerOne के माध्यम से जिम्मेदाराना खुलासा)
  • नामकरण: Sansec
  • समाधान: Adobe APSB25-88 (आपातकालीन पैच, 2025-09-09)

केवल अधिकृत सुरक्षा परीक्षण के लिए। केवल उन्हीं सिस्टम के विरुद्ध उपयोग करें जिनके आप स्वामी हैं या जिनके परीक्षण की स्पष्ट लिखित अनुमति आपके पास है।


यह क्या करता है

यह टूल प्रत्येक वेक्टर के लिए सामान्य तीन चरणों को श्रृंखलाबद्ध करता है, साथ ही एक ट्रिगर:

  1. Gadget निर्माण — phpggc -se -a Guzzle/FW1 <remote_path> <payload.php> एक सीरियलाइज़्ड ऑब्जेक्ट बनाता है जो deserialize होने पर payload.php को <remote_path> पर लिखता है।
  2. नकली session अपलोड — POST /customer/address_file/upload सीरियलाइज़्ड ब्लॉब को sess_<SESSID> के रूप में संग्रहीत करता है। Magento अपलोड की गई address फ़ाइलों को फ़ाइलनाम के पहले अक्षरों के आधार पर वितरित करता है, इसलिए यह media/customer_address/s/e/sess_<SESSID> पर पहुँचती है (इसीलिए --save-path में s/e/ है)।
  3. save_path पुनर्निर्देशन — एक नेस्टेड REST पेलोड Session\Config का निर्माण करता है और, setSavePath() → setOption() → ini_set('session.save_path', ...) (एक प्रोसेस-ग्लोबल साइड इफेक्ट) के माध्यम से, PHP के session हैंडलर को अपलोड किए गए ब्लॉब की ओर इंगित करता है।
  4. ट्रिगर — Cookie: PHPSESSID=<SESSID> ले जाने वाला अनुरोध session_start() को ज़हरीली फ़ाइल को पढ़ने और unserialize() करने के लिए बाध्य करता है, जिससे gadget फायर होता है और पेलोड लिखा जाता है।

वेक्टर

सभी तीन वेक्टर एक ही सिंक तक पहुँचते हैं (context → urlBuilder → session → sessionConfig → savePath)। वे केवल endpoint, HTTP क्रिया और शामिल Magento मॉड्यूल में भिन्न होते हैं — यह तब उपयोगी है जब कोई WAF या अक्षम मॉड्यूल एक endpoint को ब्लॉक करता है लेकिन दूसरे को नहीं।

किसी भी वेक्टर के लिए वास्तविक कार्ट की आवश्यकता नहीं है। ServiceInputProcessor इनपुट रिज़ॉल्यूशन के दौरान मेथड पैरामीटर को deserialize करता है — इससे पहले कि सेवा कोई कार्ट लुकअप करे — इसलिए abc का एक डमी cartId तीनों में सिंक तक पहुँचता है। इसके बाद आने वाली "cart not found" त्रुटि (404/500) अपेक्षित है और पुष्टि करती है कि deserialization साइड इफेक्ट पहले ही फायर हो चुका है।

यदि आप चाहते हैं कि टूल ट्रिगर करने से पहले एक वास्तविक गेस्ट कार्ट बनाकर उसमें प्रोडक्ट जोड़े (GraphQL के माध्यम से सत्यापित), तो --sku फ़्लैग उपलब्ध है। यह वैकल्पिक है और exploitation के लिए आवश्यक नहीं है — यह केवल उन वातावरणों के लिए मौजूद है जहाँ आप पूर्ण रूप से यथार्थवादी चेकआउट प्रवाह पसंद करते हैं। इसे छोड़ दें और टूल डमी abc कार्ट का उपयोग करेगा।


पूर्वापेक्षाएँ

  • फ़ाइल-आधारित session संग्रहण (var/session/)। Redis- और डेटाबेस-समर्थित sessions इस विशिष्ट RCE चेन से प्रभावित नहीं होते हैं। यह दूरस्थ रूप से एन्यूमरेट नहीं किया जा सकता, इसलिए इसे ब्लाइंड प्रयास करना होगा।
  • /customer/address_file/upload बिना प्रमाणीकरण के पहुँच योग्य हो।
  • लक्ष्य अनपैच्ड हो (pre-APSB25-88 / pre-2.4.x हॉटफिक्स)।

आवश्यकताएँ

  • requests के साथ Python 3.8+
  • phpggc — PATH में, सामान्य इंस्टॉल स्थानों में स्वतः-पहचाना जाता है, या फ़ॉलबैक के रूप में ambionics/phpggc Docker इमेज से खींचा जाता है
  • payload.php स्क्रिप्ट के समान निर्देशिका में हो (इसे <?php से शुरू होना चाहिए)
root@kitploit:~
pip install requests
git clone https://github.com/ambionics/phpggc /opt/phpggc   # or: docker pull ambionics/phpggc

उपयोग

root@kitploit:~
# order (original vector) — no cart, no credentials
python3 session_reaper.py --host https://target.com --method order

# checkmo — payments endpoint, Spanish store scope for the REST API
python3 session_reaper.py --host https://target.com --method checkmo --api-store es

# address — shipping endpoint
python3 session_reaper.py --host https://target.com --method address --api-store all

# optional: exercise a real cart flow with a known SKU (not required)
python3 session_reaper.py --host https://target.com --method address --sku PROD-001

विकल्प


स्टोर स्कोप

यह टूल दो स्वतंत्र स्टोर कोड का उपयोग करता है:

  • --api-store — deserialization अनुरोध URL में स्कोप (/rest/<api-store>/V1/guest-carts/...), जहाँ ServiceInputProcessor चलता है।
  • --store — ट्रिगर अनुरोध (GET /<store>/) के लिए स्कोप और, यदि --sku उपयोग किया जाए, कार्ट अनुरोधों के लिए।

स्टोर व्यू कोड एडमिन-परिभाषित होते हैं; es/fr मत मान लें। पहले सक्रिय स्टोर व्यू की सूची बनाएं — गैर-मौजूद स्कोप के विरुद्ध अनुरोध बस विफल हो जाता है।


पेलोड लक्ष्य — pub/errors/404.php क्यों

Magento का डिफ़ॉल्ट Nginx कॉन्फ़िग fastcgi_backend को केवल सात PHP फ़ाइलें पास करता है:

root@kitploit:~
index.php, get.php, static.php,
errors/report.php, errors/404.php, errors/503.php, health_check.php

कोई भी अन्य .php (pub/media/ में डाली गई कोई भी फ़ाइल सहित) अस्वीकार कर दी जाती है और कभी निष्पादित नहीं होगी। इसलिए पेलोड को नई फ़ाइल डालने के बजाय इन सात व्हाइटलिस्टेड फ़ाइलों में से एक को ओवरराइट करना चाहिए। pub/errors/404.php डिफ़ॉल्ट है क्योंकि Magento किसी भी अनुपलब्ध पृष्ठ पर इसे आंतरिक रूप से रेंडर करता है, इसलिए यह लाइव स्टोर पर अक्सर फायर होती है।

OPSEC: 404.php को सीधे ओवरराइट करना शोरगुल वाला होता है (यह हर 404 पर चलता है)। वास्तविक एंगेजमेंट में, किसी व्हाइटलिस्टेड फ़ाइल को मिटाने के बजाय उसमें सूक्ष्म रूप से बैक-डोर लगाएं।


नोट्स

  • टूल डिफ़ॉल्ट रूप से गेस्ट के रूप में कार्य करता है। --username/--password केवल तभी आवश्यक हैं यदि आप किसी विशिष्ट सेटअप के लिए Bearer टोकन चाहते हैं।
  • deserialization अनुरोध पर 404/500 की अपेक्षा करें — यह सामान्य है और विफलता का संकेत नहीं है।
  • सफ़ाई: अस्थायी /tmp/sess_<SESSID> फ़ाइल बाहर निकलने पर हटा दी जाती है।

संदर्भ

  • Adobe Advisory APSB25-88
  • Sansec — SessionReaper खुलासा
  • Searchlight Cyber (Assetnote) — मूल RCE PoC
  • Pentest-Tools.com — exploit विकास विवरण
  • NVD — CVE-2025-54236

अस्वीकरण

केवल अधिकृत सुरक्षा अनुसंधान और परीक्षण के लिए प्रदान किया गया है। लेखक दुरुपयोग के लिए कोई दायित्व स्वीकार नहीं करता। स्पष्ट अनुमति के बिना सिस्टम के विरुद्ध न चलाएं।

टूल डाउनलोड करें
विधिएंडपॉइंटक्रियाचेन में प्रवेश बिंदु
order/rest/<store>/V1/guest-carts/abc/orderPUTpaymentMethod → paymentData → Payment\Helper\Data
checkmo/rest/<store>/V1/guest-carts/abc/set-payment-informationPOSTpaymentMethod → paymentData → Payment\Helper\Data
address/rest/<store>/V1/guest-carts/abc/estimate-shipping-methodsPOSTaddress → addressConfig → addressHelper → Customer\Helper\Address
फ़्लैगडिफ़ॉल्टविवरण
--host(आवश्यक)लक्ष्य का आधार URL
--method(आवश्यक)address | checkmo | order
--storedefaultट्रिगर अनुरोध के लिए स्टोर कोड (और कार्ट, यदि --sku उपयोग किया जाए)
--api-storedefaultdeserialization endpoint URL में स्टोर कोड (all | es | default | कस्टम)
--sku(कोई नहीं)वैकल्पिक। सेट करने पर, इस SKU के साथ एक वास्तविक गेस्ट कार्ट बनाता है। आवश्यक नहीं है।
--payload-inpayload.phpलक्ष्य पर लिखने के लिए PHP पेलोड
--payload-out/var/www/html/pub/errors/404.phpदूरस्थ लेखन पथ (वेब-निष्पादन योग्य स्थान होना चाहिए — नीचे नोट देखें)
--save-pathmedia/customer_address/s/e/gadget चेन में इंजेक्ट किया गया savePath
--phpggc(स्वतः)phpggc बाइनरी का स्पष्ट पथ
--proxyhttp://127.0.0.1:8081HTTP प्रॉक्सी (जैसे Burp)
--no-proxyoffप्रॉक्सी अक्षम करें
--username / --password(कोई नहीं)Bearer टोकन के लिए वैकल्पिक ग्राहक क्रेडेंशियल्स