JPG Local File Inclusion

Codebreak ha messo un nuovo video sul sito Milworm che descrive la tecnica del “Local File Inclusion”. Cerco di riportarne un’esemplificazione basata sul video in questione.

Il tipo di file che riguarderà il LFI (Local File Inclusion) sarà il .jpg. Esatto, il classico formato delle immagini, non rilevate come pericolose dagli antivirus. Un formato “passpartout” in quanto è possibile caricarle (upload) su guestbook, forum, blog, ecc. Se il Local File Intrusion affligge un host che ha un forum, un guestbook o altro, il pericolo è alto in quanto si può caricare (e quindi eseguire) tutto il codice che si vuole!

Quello che occorre è:
– un’immagine .jpg
– un programma per inserire commenti all’interno di un’immagine (AKA inject php code)
– un sito web
– un file .php su cui testare il “progetto”

Cominciamo col creare il file .php su cui testare il tutto. Apriamo il block notes e scriviamo il seguente codice:
<?php
$bug=$_GET[‘bug’];
@include(“$bug”);
?>
|

Dopodiché salviamo il file come bug.php. Inseriamo il file sotto la directory root del nostro sito.
Carichiamo anche un’immagine .jpg salvandola come pic.jpg.
Digitate l’indirizzo web http://NomeVostroSito/bug.php?bug=pic.jpg
Dovreste visualizzare un qualche tipo di errore…

Adesso utilizziamo il programma per inserire la shell (il codice) all’interno dell’immagine. Il programma che andremo ad usare si chiama “edjpgcom” e lo potete anche trovare nella pagina download del mio sito internet. Inseriamo il seguente codice:
<? ob_clean(); system(“dir”); die; ?>

Diamo ok e salviamo l’immagine come pic2.jpg. Carichiamo l’immagine sul nostro sito.

Ora riprovate a digitare l’indirizzo http://NomeVostroSito/bug.php?bug=pic2.jpg
Se il vostro sito web non è vulnerabile al’exploit… peggio (o meglio) per voi, vi perdete il divertimento… In caso contrario visualizzerete il simbolo di una X rossa, classico simbolo di un’immagine presente su una pagina web che però, per qualche ragione, non è riuscita a “caricarsi” e che quindi non visualizziamo sul nostro browser. Se però salvate l’immagine oppure la aprite… all’interno vedrete il codice ESEGUITO! Il file “pic2.jpg” contiene cioè solo il codice eseguito (non contiene più i dati dell’immagine ed è per questo motivo che il vostro browser non riesce a visualizzarla).

Le potenzialità di questo exploit sono grandi: all’interno del file immagine potete far eseguire del codice per qualsiasi tipo di istruzione vi venga in mente!
Un reale pericolo deriva dai forum sui quali è possibile caricare un’immagine come proprio avatar: potete così nascondere il codice all’interno dell’avatar stesso!

Un altro esempio di utilizzo mostrato dal video è quello per modificare il file index.php, cioè la pagina iniziale del sito. L’esempio riportato richiede di modificare il codice all’interno dell’immagine nel seguente modo:
<? ob_clean(); system(“echo ^<b^>^<center^>Codebreak was here^</b^></center^> > index.php”); die; ?>

Il risultato sarà che nella home page del sito non vedrete più i contenuti originali ma vi apparirà unicamente la dicitura “Codebreak was here” su una pagina bianca totalmente vuota.

PHCKSEC ha anche riportato un video nel quale spiega una tecnica simile, in cui va a modificare gli header di un’immagine .png inserendo il codice:
<html><body><script>alert(‘PHCKSEC!😀’);</script></body></html>

Caricate l’immagine come avatar in un forum. Spostatevi nel vostro profilo utente su tale forum. Visualizzate il codice sorgente html e cercate l’indirizzo assegnato all’avatar appena caricato (sarà qualcosa di simile a “images/avatars/12345678abc91012de.png”). Ora copiate il link trovato in modo simile:

Il vostro browser visualizzerà una finestra di alert in cui c’è scritto “PHCKSEC! :D”. Questo perché Internet Explorer si mangia qualsiasi tipo di codice incontra: non pensate di poter fare una cosa simile con Firefox🙂

~ di 2BFree su febbraio 4, 2007.

9 Risposte to “JPG Local File Inclusion”

  1. thankss

  2. grazie!!! mooooolto interessante!

  3. Grazie a voi per gli apprezzamenti!

  4. hello, could you tell me the code which can use to redirect to a website i want ?
    thanks

  5. i mean that , don;r “dir”, it will be open a page i want
    thanks

  6. soggetto ad xss…😄

  7. ?php
    $bug=$_GET[‘bug’];
    @include(”$bug”);
    ?

  8. Popular in inquiry education, divergent questions allow students to explore different avenues and create many different variations and alternative answers or scenarios. ,

  9. Quando si tenta di includere la jpg tramite il file bug.php non sarà visualizzato alcun errore, perchè avete inserito l’operatore @

    comunque sia complimenti davvero, e un caloroso saluto!

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: