Nascondere codice PHP all’interno di immagini
Molti servizi di upload “casalingo” utilizzano solo il mime type resituito dalla funzione getimagesize() per controllare se un file è tra quelli consentiti in upload. In base a questo concetto si è arrivati alla conclusione che iniettando all’interno di un’immagine GIF codice PHP e rinominando poi il file in .php si riesce comunque ad effettuare l’upload perchè il mime type rimane inalterato in image/gif.
In questo modo una volta salvato il file sul server, senza averne cambiato l’estensione e potendolo raggiungere direttamente, sarà possibile eseguire il codice inserito all’interno dello stesso.
Ovviamente la cosa si è diffusa in rete e c’è chi ha scritto pure un documento sull’argomento, non mi sono soffermato più di tanto sugli esempi ma devo dire che può essere utile per capire quali sono i problemi derivanti da un sistema di upload pubblico.
Nell’esempio di RSnake il codice PHP viene messo in parti più o meno casuali dell’immagine GIF e vengono usati i commenti “/*” e “*/” perchè ci sono stati problemi di parsing con i dati binari che compongono l’immagine stessa. Personalmente ho creato una semplice immagine GIF di 1×1 pixel, in formato GIF89a il quale permette l’uso dei metadati, e ho salvato dentro ad essa un commento che altro non era che del codice PHP:
A questo punto ho rinominato il file in .php ed ho provato a far effettuare il parsing a mod_php sia in versione 4 che 5 e non c’è stato nessun problema. L’unico inconveniente, se così si vuole chiamare è che il parser riconosce solo il codice all’interno di “<?php ?>” quindi tutti i caratteri ASCII che compongono l’immagine saranno mandati direttamente in output:
Se il file GIF rinominato .php viene eseguito senza problemi dal parser PHP vuol dire che se cerco di includere l’immagine originale, con il commento che contiene codice PHP, tramite include() o require() questo verrà eseguito: si possono, quindi, usare file di immagine (GIF, PNG e JPEG) per eseguire codice tramite RFI (Remote File Inclusion). A questo punto un qualsiasi servizio di image hosting come ImageShack, Flickr, Zooomr e tanti altri può trasformarsi inconsapevolmente in un hoster di codice per RFI.
Come già detto, per ospitare codice PHP in una immagine, è possibile utilizzare, oltre al formato GIF, anche JPEG e PNG. Per farlo sarà necessario solamente utilizzare i metadati previsti dai due formati.

Really good
ciao complimenti XD
vorrei mettere su un immagine gif un codice php quello
phpinfo()
volevo sapere come posso fare…
un altra cosa essendo che ho un forum che usa phpbb3
ce il modo per fare questo
e se si posso fare in modo che non venga fatto…
thx aspetto tue risposte…^^