Post30 nn

A nivel web, existen distintas vulnerabilidades las cuales pueden ser muy peligrosas si no son mitigadas adecuadamente. En esta oportunidad nos enfocaremos en la vulnerabilidad Local File Inclusion (LFI). LFI es una vulnerabilidad web que permite ejecutar archivos localmente en el servidor (local file incluson) y tener acceso a archivos de configuración  passwords etc. Esta vulnerabilidad se ve siempre en paginas webs mal parchadas o mal editadas. Un ejemplo de una vulnerabilidad LFI es la siguiente:


  • http://www.web.com/index.php

  • El cual puede ser explotada de la siguiente manera:  http://www.web.com/index.php?page=/etc/passwd - entre muchas cosas que podemos obtener de un ataque LFI (archivos de conexión a bases de datos, scripts privados etc.)

  • /etc/passwd es el fichero de usuarios del sistema  Linux.






¿Cuál es el peligro de dicha vulnerabilidad?


El peligro de esta vulnerabilidad es que si esta presente en un sit web, un atacante podría leer información sensible, ejecutar comandos, obtener una conexión inversa y de esta manera controlar al servidor, etc. A continuación se mostrará parte de un código PHP vulnerable.


<?php
$seccion = $_GET[‘SECCION’];
include( $seccion );
?>



Este código es vulnerable ya que en este caso la función include de PHP recupera todo lo que solicite el usuario final. Por ende un atacante podría realizar lo siguiente:


http://victima/app.php?seccion=../../../../../etc/passwd


A través de este vector de ataque, el atacante podría listar el fichero passwd del sistema, y/o realizar ataques más sofisticados.




Tenemos el siguiente escenario de pruebas:


       Posible Vulnerabilidad LFI presente


 

En este sitio web se pemiten leer ciertos documentos informativos de otro aplicativo web (http://www.textfiles.com/hacking/atms). Para poder intentar verificar si este aplicación web es vulnerable a LFI en primer lugar revisaremos la trama que se realizar por POST. Teniendo la trama podemos observar lo siguiente:


                                                      Trama de la petición por POST


En la trama podemos observar que el parámetro textfile esta llamando al sitio web para mostrar la información solicitada, sin embargo es posible tratar de inyectar vectores LFI para ver si el aplicativo es vulnerable, en el parámetro  textfile podemos inyectar un vector de la siguiente manera:

textfile=/etc/passwd&text-file-viewer-php-submit-button=View+File

textfile=../etc/passwd&text-file-viewer-php-submit-button=View+File

textfile=../../etc/passwd&text-file-viewer-php-submit-button=View+File

textfile=../../../etc/passwd&text-file-viewer-php-submit-button=View+File


Los dos puntos, sirven principalmente para poder cambiar de directorio, ya que a veces el aplicativo se encuentra en una ruta distinta a /var/www/ y por ende podemos ir cambiando de directorio para probar si la consulta logra ser exitosa. Al parecer la consulta fue exitosa con el primer vector de ataque:

Trama de la petición por POST



Esta vulnerabilidad es altamente peligrosa ya que un atacante podría leer información sensible o subir archivos al sistema (no en todos los casos es posible por formas de configuración del sitio web).


Si deseas practicar con esta vulnerabilidad puedes descargar el proyecto Multidae 2 de Owasp y de esta manera probar dicha vulnerabilidad


https://sourceforge.net/projects/mutillidae/



Artículos que te pueden interesar