Hoy vamos a ver un tipo de ataque que está enfocado en aplicaciones web.
Este tipo de ataque se le denomina JPG File Inclusion, y permite subir imágenes inyectadas con cógido a una página web saltando los filtros de protección para después poder ejecutar dicho código en el servidor remoto (donde está alojada dicha web) por medio de una inclusión a la imagen.
Bien, lo primero que se debe hacer es localizar una web que permita subir imagenes al servidor, y que dicha web trabaje con PHP, como por ejemplo los foros...
En mi caso utilizaré mi propio laboratorio como servidor web.
Las herramientas que necesitaremos son:
- Imagen con formato .jpg para subir al servidor víctima.
- edjpgcom: Programa para inyectar codigo dentro de un JPG.
- TamperData: Extensión de Firefox para ver y modificar cabeceras HTTP/HTTPS.
- Firefox.
- Servidor que permita subir imágenes JPG (Será nuestra víctima).
Lo primero que haremos será descargar edjpgcom para poder inyectar el codigo que queramos en nuestra imagen, yo utilizaré una imagen como si fuese mi foto de perfil.
Para ejecutar dicho programa tendremos que colocar nuestra imagen en la carpeta donde está ubicado el programa, después abrirmos la consola y ejecutamos la siguiente instrucción:
edjpgcom.exe "Filename.jpg"
Una vez ejecutemos dicha instrucción, se nos abrirá la siguiente ventana, que nos permitirá inyectar codigo dentro de la imagen:
Ahora debemos introducir el código que deseamos que se ejecute en el servidor víctima.
En este caso inyectaré un simple <?php phpinfo()?> que nos mostrará información sobre la configuración PHP en el servidor víctima.
Vale, ahora damos a OK y nuestra imagen contendrá dicho código en su interior.
Para eso abrimos la imagen con un editor de texto y veremos que tiene el siguiente aspecto:
Tenemos que cambiar el nombre de nuestra imagen y añadir ".php" antes de la extensión ".jpg".
Ejemplo: "Filename.php.jpg"
Una vez tenemos nuestra imagen preparada, nos vamos al servidor víctima donde esté alojado el Upload y ejecutamos la extensión TamperData para empezar a modificar las peticiones:
Subimos la imagen y modificamos la cabecera para indicarle que lo suba como perfil.php, y no como perfil.php.jpg:
Aceptamos la modificación y en la siguiente ventana damos a enviar para que envíe dicha modificación:
Ya tenemos subida nuestra imagen:
Pero esperar un segundo... ¿No hemos cambiado su extensión ".jpg" por ".php"?
Veámos que nos ha subido al servidor víctima:
Si nos hemos fijado bien, la ruta donde se ha alojado nuestro fichero es: archivos/perfil.php, así que vamos a acceder a dicha ruta para ver si se ejecuta correctamente nuestro codigo php...
Perfecto!!!
¿Qué pasaría si en vez de un simple phpinfo inyectásemos una pequeña shell? xD
Espero que les haya gustado, les dejo con un video-tutorial.
Saludos.
Referencias
http://pwnakil.blogspot.com.es/2012/09/backdorea-con-las-shell-web-mas-pequenas.html
http://websecuritydev.com/blog/creando-una-mini-shell-en-php/
http://calebbucker.blogspot.com.es/2012/07/subiendo-shell-explotando-lfi-via.html
http://antisec-security.blogspot.com.es/2012/10/vulnerabilidad-rfi-y-lfi-rfi-remote.html
**No me hago responsable del mal uso que se de a la información presentada. Esta información es de carácter didáctico.**











