Vulnerabilità nell'esecuzione di codice in modalità remota in base64_decode di PHP?

0

Sto provando a pentestare uno script PHP.

Questa è la ultima riga dello script che voglio sfruttare:

Header("Location: ".TOP_DIR."/".base64_decode($_GET['ref'])."&imgid=".$_GET['imgid']);

È vulnerabile all'esecuzione di codice in modalità remota? In tal caso, voglio eseguire la funzione system all'interno della funzione base64_decode :

system($_GET['cmd'])

È possibile?

    
posta I'm V 11.07.2016 - 05:23
fonte

2 risposte

3

Non dovresti mai dire mai, ma non c'è motivo di credere che potresti sfruttare quella linea per ottenere RCE. La funzione base64_decode fa esattamente ciò che il nome implica - decodifica base64. Per ottenere il valore del parametro eseguito è necessaria una funzione che esegua il codice fornito, come eval . Non sembri averlo, quindi sei sfortunato.

Detto questo, sembra che tu possa fare l'attraversamento del percorso, poiché non vi è alcun controllo per / caratteri. Non sei sicuro di come potresti sfruttarlo in una risposta di reindirizzamento, comunque. Nelle versioni precedenti di PHP puoi anche eseguire l'header header includendo una nuova riga, iniziando così una nuova intestazione.

    
risposta data 11.07.2016 - 17:20
fonte
1

La funzione base64_decode() non è rischiosa di per sé ma è in esecuzione codice arbitrario sul tuo sistema.

Avere uno script che chiama system($_GET['cmd']) è quasi un invito per gli hacker a rovinare il tuo server. Non appena qualcuno esperto lo troverà, avrà un sacco di divertimento a tue spese.

Se sei preoccupato per la sicurezza in qualsiasi modo, non lascerai mai che i tuoi utenti decidano cosa gira sul tuo server.

    
risposta data 11.07.2016 - 05:31
fonte

Leggi altre domande sui tag