Come eval () in php può essere pericoloso nella sicurezza dell'applicazione web?

0

Voglio sapere che in che modo la funzione eval può essere pericolosa per la sicurezza di qualsiasi applicazione Web?

Di seguito è riportato il codice che utilizzo per capire quando l'input di un utente passa alla funzione eval, quindi in che modo un utente malintenzionato può sfruttarlo?

<?php

$x = @$_GET['arg'];

eval("\$y = \"$x\";");
echo $x;

?>
    
posta Utkarsh Agrawal 08.02.2018 - 13:26
fonte

1 risposta

3

Ok, prima immagina di inviare questa richiesta:

script.php?arg=foo

La tua valutazione è quindi la seguente:

$y = "foo";

Ma se invio questo:

script.php?arg=";%20echo%20exec('whoami');%20//

Questo trasforma il tuo codice in questo:

$y = ""; echo exec('whoami'); //";

Che esegue il comando "whoami" sul server e stampa il risultato. La // esclude la parte finale del codice originale in modo che venga ignorata e il mio codice venga eseguito correttamente.

Questo è un bug di esecuzione di codice remoto incredibilmente banale da sfruttare.

    
risposta data 08.02.2018 - 13:30
fonte

Leggi altre domande sui tag