Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2024-50340 | Kitploit
Strumenti/GitHubGitHub/nyamort/cve-2024-50340
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubnyamort/cve-2024-50340

CVE-2024-50340

Vedi Repository
121 anno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2024-50340 POC

Requisiti

L'opzione register_argc_argv deve essere abilitata nel file di configurazione PHP (php.ini). Questa impostazione carica gli argomenti della riga di comando e i parametri della query in $_SERVER['argv']. https://www.php.net/manual/en/ini.core.php#ini.register-argc-argv

Spiegazione del codice vulnerabile

Questo codice Symfony utilizza gli argomenti di input (ArgvInput) per determinare i valori di alcune variabili d'ambiente, in particolare APP_ENV e APP_DEBUG. Ecco le parti rilevanti del codice di 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');
}

Il codice precedente elabora gli argomenti forniti tramite ArgvInput. Se il parametro --env è specificato in argv, aggiorna di conseguenza la variabile d'ambiente APP_ENV. Allo stesso modo, se --no-debug è presente, imposta APP_DEBUG a 0.

La classe ArgvInput

La classe ArgvInput inizializza i parametri argv passati tramite riga di comando, parametri della query o, per impostazione predefinita, quelli presenti in $_SERVER['argv']. La funzione array_shift($argv); rimuove il primo elemento dall'array $argv (normalmente il nome dell'applicazione) e memorizza gli argomenti rimanenti 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);
}

Esempio di PoC

Utilizzando il seguente URL: http://localhost/?+--env=dev, possiamo iniettare un argomento --env=dev in $_SERVER['argv']. Questo ci permette di cambiare il valore di APP_ENV in dev senza modificare direttamente la configurazione dell'applicazione.

  1. Quando si accede a http://localhost/?+--env=dev, $_SERVER['argv'] potrebbe apparire così:
root@kitploit:~
$_SERVER['argv'] = ["+--env=dev"];
  1. Nella classe ArgvInput, dopo l'operazione array_shift, $argv diventa:
root@kitploit:~
$argv = ["--env=dev"];
  1. ArgvInput riconoscerà quindi --env=dev come parametro valido e aggiornerà APP_ENV di conseguenza tramite il metodo getParameterOption.
Scarica lo strumento