Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    PHP Injection Through Image

    Salve, come da titolo mi sono riscontrato nella famosa vulnerabilità per uplodare un file.
    Infatti, se in un qualsiasi form di upload immagini facciamo un controllo per l'estensione del file, questo non basta: si può inniettare un file del tipo *.php.png che, come estensione è riconosciuta come immagine, ma una volta uplodata sul server è interpretata come php.
    In poche parole non so come risolvere questo problema: avevo pensato di leggere il file prima di uplodarlo, ma nonostante un file php sia ben diverso da un immagine, come faccio a distinguerli?

    Help me.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    ma sei sicuro? ho fatto dei test con un semplice script per upload.
    Il file era pagina.php (con dentro <?php echo "hello world"; ?>) e rinominata in "pagina.php.png" e non è successo niente di che. Cioè, richiamando il file via browser, viene restituito il messaggio: "L'immagine “http://localhost/test/pagina.php.png” non può essere visualizzata poiché contiene degli errori."
    Non viene interpretato alcun codice.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    ciao Elmapomap, anche se avvenisse un upload di questo tipo che problemi potrebbe portare?
    Comunque potresti controllare che nel nome del file non ci siano occorrenze della stringa ".php" tramite un'espressione regolare.

  4. #4
    ciao, rispondo ad entrambi:
    @LucianoS: dipende dalle impostazioni del web server, infatti guarda qui:
    creo un file del tipo:
    Codice PHP:
    <?
            
    echo "
               <FORM ACTION=\"\" METHOD=\"POST\">
                Inserit:<INPUT TYPE=\"text\" NAME=\"from\">
               </FORM>
            "
    ;

    echo 
    "
    "
    .$_POST["from"];

    ?>
    e faccio l'upload: http://mapoetto.net/Varie%20Ed%20Eve...upload.php.png
    @arkus: a questo punto penso di rinominare direttamente il file.

  5. #5
    Soluzione: usa un server configurato correttamente.

  6. #6
    Originariamente inviato da k.b
    Soluzione: usa un server configurato correttamente.
    La vulnerabilità è nel mio CMS, che è cross-platform!.

  7. #7
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    Credo che il problema stia sul tipo di server: un linux o unix non si basa sull'estensione per controllare il tipo di file ma sul suo mime...

    Prova a fare un controllo su questi ultimi, dopo l'upload:
    http://www.w3answers.com/index.php?q...mime-types-php

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.