
Escáner LFI de prueba de concepto: Detección automatizada de exposiciones de /etc/passwd mediante directory traversal y coincidencia de regex.
# LFI Scanner
Una prueba de concepto ligera en Python para escanear hosts objetivo en busca de vulnerabilidades de inclusión local de archivos (LFI) intentando recuperar `/etc/passwd` y detectar su presencia mediante una comprobación de regex. :contentReference[oaicite:0]{index=0}
## Características
- **Escaneo por lotes** de nombres de host o destinos host:port desde un archivo de entrada
- **Payload de directory traversal** para alcanzar `/etc/passwd`
- **Detección mediante regex** de la entrada `root` para confirmar LFI
- **Barra de progreso** impulsada por `tqdm` para retroalimentación en tiempo real
- **Informes estructurados**: escribe los hallazgos y las vistas previas en un archivo de resultados
## Requisitos previos
- Python 3.6 o superior
- [`tqdm`](https://pypi.org/project/tqdm/) (`pip install tqdm`)
- CLI de `curl` disponible en tu PATH
## Instalación
```bash
git clone https://github.com/yourusername/lfi-scanner.git
cd lfi-scanner
pip install tqdm
```
## Uso
```bash
python poc.py <input_file> [-o OUTPUT_FILE]
```
* `<input_file>`: Ruta a un archivo que contiene un objetivo por línea (`hostname` o `hostname:port`).
* `-o, --output`: (Opcional) Ruta donde escribir los resultados (por defecto: `results.txt`).
### Ejemplo
Dado `targets.txt`:
```
example.com
192.168.0.1:8443
```
Ejecuta el escáner:
```bash
python poc.py targets.txt -o scan_results.txt
```
Verás una salida como esta:
```
[+] https://example.com:443/... → /etc/passwd FOUND
[-] https://192.168.0.1:8443/... → Response received, no match
```
Y `scan_results.txt` contendrá un resumen y vistas previas.
## Desglose del script
* **`poc.py`**:
* Usa `argparse` para parsear `--input` y `--output`.
* Itera sobre los objetivos y construye la URL con un payload de traversal profundo.
* Llama a `curl --insecure -s` para cada objetivo.
* Busca `root:.*?:0:0:` para confirmar la exposición de `/etc/passwd`.
* Imprime el estado por host y escribe los resultados detallados en el archivo de salida. 
## Descargo de responsabilidad
Usa esta herramienta **de forma responsable** y **solo** en activos que te pertenezcan o sobre los que tengas permiso explícito para realizar pruebas. El escaneo no autorizado puede violar leyes y términos de servicio.
## Licencia
Publicada bajo la [Licencia MIT](https://github.com/abrewer251/cve-2017-12637_sap-netweaver-url-traversal/blob/HEAD/LICENSE).
```
```