Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2024-50340 — Proof-of-Concept-Exploit für CVE-2024-50340, der die Injection von Umgebungsvariablen in Symfony ArgvInput über präparierte URL-Abfrageparameter demonstriert und die Manipulation von APP_ENV und APP_DEBUG ermöglicht. | Kitploit
Tools/GitHubGitHub/nyamort/cve-2024-50340
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & Bildung
GitHubnyamort/cve-2024-50340

CVE-2024-50340

Proof-of-Concept-Exploit für CVE-2024-50340, der die Injection von Umgebungsvariablen in Symfony ArgvInput über präparierte URL-Abfrageparameter demonstriert und die Manipulation von APP_ENV und APP_DEBUG ermöglicht.

Repository anzeigen
12vor 1 JahrNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2024-50340 POC

Voraussetzungen

Die register_argc_argv-Option muss in der PHP-Konfigurationsdatei (php.ini) aktiviert sein. Diese Einstellung lädt Befehlszeilenargumente und Abfrageparameter in $_SERVER['argv']. https://www.php.net/manual/en/ini.core.php#ini.register-argc-argv

Erklärung des anfälligen Codes

Dieser Symfony-Code verwendet Eingabeargumente (ArgvInput), um die Werte bestimmter Umgebungsvariablen, insbesondere APP_ENV und APP_DEBUG, zu bestimmen. Hier sind die relevanten Teile des Symfony-Codes:

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');
}

Der obige Code verarbeitet Argumente, die über ArgvInput bereitgestellt werden. Wenn der Parameter --env in argv angegeben ist, wird die Umgebungsvariable APP_ENV entsprechend aktualisiert. Ebenso setzt er, wenn --no-debug vorhanden ist, APP_DEBUG auf 0.

Die ArgvInput-Klasse

Die ArgvInput-Klasse initialisiert argv-Parameter, die über die Befehlszeile, Abfrageparameter oder standardmäßig über die in $_SERVER['argv'] übergeben werden. Die Funktion array_shift($argv); entfernt das erste Element aus dem $argv-Array (normalerweise der Anwendungsname) und speichert die restlichen Argumente in $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 Example

Mit der folgenden URL: http://localhost/?+--env=dev können wir ein --env=dev-Argument in $_SERVER['argv'] injizieren. Dies ermöglicht es uns, den APP_ENV-Wert auf dev zu ändern, ohne die Anwendungskonfiguration direkt zu ändern.

  1. Beim Zugriff auf http://localhost/?+--env=dev könnte $_SERVER['argv'] wie folgt aussehen:
root@kitploit:~
$_SERVER['argv'] = ["+--env=dev"];
  1. In der ArgvInput-Klasse wird nach der array_shift-Operation $argv zu:
root@kitploit:~
$argv = ["--env=dev"];
  1. ArgvInput erkennt dann --env=dev als gültigen Parameter und aktualisiert APP_ENV entsprechend über die getParameterOption-Methode.
Tool herunterladen