# LFI Scanner
一个轻量级 Python 概念验证脚本,用于扫描目标主机是否存在本地文件包含(LFI)漏洞:它会尝试获取 `/etc/passwd`,并通过正则检查确认其存在。 :contentReference[oaicite:0]{index=0}
## 功能特性
- **批量扫描**:从输入文件读取主机名或 host:port 目标
- **目录遍历载荷**:用于访问 `/etc/passwd`
- **正则检测**:匹配 `root` 条目以确认 LFI
- **进度条**:由 `tqdm` 驱动,提供实时反馈
- **结构化报告**:将发现结果和预览写入结果文件
## 前置条件
- Python 3.6 或更高版本
- [`tqdm`](https://pypi.org/project/tqdm/) (`pip install tqdm`)
- PATH 中可用的 `curl` 命令行工具
## 安装
```bash
git clone https://github.com/yourusername/lfi-scanner.git
cd lfi-scanner
pip install tqdm
python poc.py <input_file> [-o OUTPUT_FILE]
<input_file>:一个文件的路径,每行包含一个目标(hostname 或 hostname:port)。-o, --output:(可选)结果写入路径(默认:results.txt)。假设 targets.txt 内容如下:
example.com
192.168.0.1:8443
运行扫描器:
python poc.py targets.txt -o scan_results.txt
你会看到类似如下的输出:
[+] https://example.com:443/... → /etc/passwd FOUND
[-] https://192.168.0.1:8443/... → Response received, no match
而 scan_results.txt 将包含汇总和预览信息。
poc.py:
argparse 解析 --input 和 --output。curl --insecure -s。root:.*?:0:0: 以确认 /etc/passwd 暴露。请负责任地使用此工具,并且仅对您拥有或已获得明确授权进行测试的资产使用。未经授权的扫描可能违反法律和服务条款。
基于 MIT 许可证 发布。